OpenCue icon indicating copy to clipboard operation
OpenCue copied to clipboard

can't submit any jobs via Cuesubmit UI - Failed to parse job spec XML, java.net.MalformedURLException

Open jerlyn06 opened this issue 3 years ago • 4 comments

Describe the bug I just downloaded and set up Opencue latest release version 0.8.8 on Windows 10 Home, and I cannot submit any jobs via the CueSubmit UI.

maya_error

This attachment is the screenshot of the error I get. It is the same error I get when I try to submit a shell job, too. shell_error

When checking the logs, this is the log written by the gRPC server:

2021-07-20 19:18:25,976 ERROR grpc-default-executor-0 com.imageworks.spcue.servant.ManageJob - Failed to launch and add job.
com.imageworks.spcue.SpecBuilderException: Failed to parse job spec XML, java.net.MalformedURLException
	at com.imageworks.spcue.service.JobSpec.parse(JobSpec.java:891)
	at com.imageworks.spcue.service.JobLauncher.parse(JobLauncher.java:71)
	at com.imageworks.spcue.servant.ManageJob.launchSpecAndWait(ManageJob.java:278)
	at com.imageworks.spcue.grpc.job.JobInterfaceGrpc$MethodHandlers.invoke(JobInterfaceGrpc.java:2694)
	at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:171)
	at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35)
	at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23)
	at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40)
	at com.imageworks.common.spring.remoting.CueServerInterceptor$1.onHalfClose(CueServerInterceptor.java:31)
	at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:283)
	at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:707)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

The cuesubmit python script also returns the following error:

Traceback (most recent call last):
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\pycue-unknown-py3.7.egg\opencue\util.py", line 44, in _decorator
    return grpcFunc(*args, **kwargs)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\pycue-unknown-py3.7.egg\opencue\api.py", line 378, in launchSpecAndWait
    job_pb2.JobLaunchSpecAndWaitRequest(spec=spec), timeout=Cuebot.Timeout).jobs
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\grpc\_interceptor.py", line 201, in __call__
    credentials=credentials)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\grpc\_interceptor.py", line 226, in _with_call
    return call.result(), call
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\grpc\_channel.py", line 295, in result
    raise self
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\pycue-unknown-py3.7.egg\opencue\cuebot.py", line 359, in _intercept_call
    request_or_iterator)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\grpc\_interceptor.py", line 217, in continuation
    credentials=new_credentials)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\grpc\_channel.py", line 537, in with_call
    return _end_unary_response_blocking(state, call, True, None)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\grpc\_channel.py", line 467, in _end_unary_response_blocking
    raise _Rendezvous(state, None, None, deadline)
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with:
        status = StatusCode.INTERNAL
        details = "Failed to launch and add job: Failed to parse job spec XML, java.net.MalformedURLException"
        debug_error_string = "{"created":"@1626790430.110000000","description":"Error received from peer","file":"src/core/lib/surface/call.cc","file_line":1017,"grpc_message":"Failed to launch and add job: Failed to parse job spec XML, java.net.MalformedURLException","grpc_status":13}"
>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\cuesubmit-unknown-py3.7.egg\cuesubmit\ui\Submit.py", line 526, in submit
    raise e
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\cuesubmit-unknown-py3.7.egg\cuesubmit\ui\Submit.py", line 522, in submit
    jobs = Submission.submitJob(jobData)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\cuesubmit-unknown-py3.7.egg\cuesubmit\Submission.py", line 151, in submitJob
    return outline.cuerun.launch(ol, use_pycuerun=False)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\pyoutline-unknown-py3.7.egg\outline\cuerun.py", line 101, in launch
    return launcher.launch(use_pycuerun)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\pyoutline-unknown-py3.7.egg\outline\cuerun.py", line 219, in launch
    return self.__get_backend_module().launch(self, use_pycuerun=use_pycuerun)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\pyoutline-unknown-py3.7.egg\outline\backend\cue.py", line 125, in launch
    jobs = opencue.api.launchSpecAndWait(launcher.serialize(use_pycuerun=use_pycuerun))
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\pycue-unknown-py3.7.egg\opencue\util.py", line 57, in _decorator
    exception(exception.failMsg.format(details=details)))
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\future\utils\__init__.py", line 421, in raise_with_traceback
    raise exc.with_traceback(traceback)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\pycue-unknown-py3.7.egg\opencue\util.py", line 44, in _decorator
    return grpcFunc(*args, **kwargs)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\pycue-unknown-py3.7.egg\opencue\api.py", line 378, in launchSpecAndWait
    job_pb2.JobLaunchSpecAndWaitRequest(spec=spec), timeout=Cuebot.Timeout).jobs
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\grpc\_interceptor.py", line 201, in __call__
    credentials=credentials)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\grpc\_interceptor.py", line 226, in _with_call
    return call.result(), call
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\grpc\_channel.py", line 295, in result
    raise self
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\pycue-unknown-py3.7.egg\opencue\cuebot.py", line 359, in _intercept_call
    request_or_iterator)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\grpc\_interceptor.py", line 217, in continuation
    credentials=new_credentials)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\grpc\_channel.py", line 537, in with_call
    return _end_unary_response_blocking(state, call, True, None)
  File "D:\Personal\open_cue_setup\venv\lib\site-packages\grpc\_channel.py", line 467, in _end_unary_response_blocking
    raise _Rendezvous(state, None, None, deadline)
opencue.exception.CueInternalErrorException: Server caught an internal exception. Failed to launch and add job: Failed to parse job spec XML, java.net.MalformedURLException

Any help would be appreciated.

jerlyn06 avatar Jul 20 '21 14:07 jerlyn06

Where is your Cuebot running and what version is it?

Usually XML errors in this area mean there's a version mismatch between Cuebot and your local python tools, and Cuebot is expecting XML different than what's being sent.

bcipriano avatar Jul 29 '21 18:07 bcipriano

Hi, I've got a similar issue.

Here are few infos : cuebot and cuesubmit are on different linux machines. Both using 0.14.5 The server is using python 3.9.2 on debian, the client is using python 3.9.6 on centos.

java version on the server : openjdk 11.0.14 2022-01-18 OpenJDK Runtime Environment (build 11.0.14+9-post-Debian-1deb11u1) OpenJDK 64-Bit Server VM (build 11.0.14+9-post-Debian-1deb11u1, mixed mode, sharing)

cuebot log :

2022-03-29 16:12:52,708 ERROR grpc-default-executor-1 com.imageworks.spcue.servant.ManageJob - Failed to launch and add job.
com.imageworks.spcue.SpecBuilderException: Failed to parse job spec XML, java.net.MalformedURLException
	at com.imageworks.spcue.service.JobSpec.parse(JobSpec.java:923)
	at com.imageworks.spcue.service.JobLauncher.parse(JobLauncher.java:71)
	at com.imageworks.spcue.servant.ManageJob.launchSpecAndWait(ManageJob.java:282)
	at com.imageworks.spcue.grpc.job.JobInterfaceGrpc$MethodHandlers.invoke(JobInterfaceGrpc.java:2820)
	at io.grpc.stub.ServerCalls$UnaryServerCallHandler$UnaryServerCallListener.onHalfClose(ServerCalls.java:182)
	at io.grpc.PartialForwardingServerCallListener.onHalfClose(PartialForwardingServerCallListener.java:35)
	at io.grpc.ForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:23)
	at io.grpc.ForwardingServerCallListener$SimpleForwardingServerCallListener.onHalfClose(ForwardingServerCallListener.java:40)
	at com.imageworks.common.spring.remoting.CueServerInterceptor$1.onHalfClose(CueServerInterceptor.java:31)
	at io.grpc.internal.ServerCallImpl$ServerStreamListenerImpl.halfClosed(ServerCallImpl.java:331)
	at io.grpc.internal.ServerImpl$JumpToApplicationThreadServerStreamListener$1HalfClosed.runInContext(ServerImpl.java:797)
	at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
	at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:123)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)

cuesubmitter log :

Traceback (most recent call last):
  File "/opt/opencue/venv/lib64/python3.9/site-packages/pycue-0.14.5-py3.9.egg/opencue/util.py", line 44, in _decorator
    return grpcFunc(*args, **kwargs)
  File "/opt/opencue/venv/lib64/python3.9/site-packages/pycue-0.14.5-py3.9.egg/opencue/api.py", line 377, in launchSpecAndWait
    jobSeq = Cuebot.getStub('job').LaunchSpecAndWait(
  File "/opt/opencue/venv/lib64/python3.9/site-packages/grpc/_interceptor.py", line 216, in __call__
    response, ignored_call = self._with_call(request,
  File "/opt/opencue/venv/lib64/python3.9/site-packages/grpc/_interceptor.py", line 257, in _with_call
    return call.result(), call
  File "/opt/opencue/venv/lib64/python3.9/site-packages/grpc/_channel.py", line 343, in result
    raise self
  File "/opt/opencue/venv/lib64/python3.9/site-packages/grpc/_interceptor.py", line 241, in continuation
    response, call = self._thunk(new_method).with_call(
  File "/opt/opencue/venv/lib64/python3.9/site-packages/grpc/_channel.py", line 957, in with_call
    return _end_unary_response_blocking(state, call, True, None)
  File "/opt/opencue/venv/lib64/python3.9/site-packages/grpc/_channel.py", line 849, in _end_unary_response_blocking
    raise _InactiveRpcError(state)
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
	status = StatusCode.INTERNAL
	details = "Failed to launch and add job: Failed to parse job spec XML, java.net.MalformedURLException"
	debug_error_string = "{"created":"@1648566772.710955750","description":"Error received from peer ipv4:192.168.0.204:8443","file":"src/core/lib/surface/call.cc","file_line":1069,"grpc_message":"Failed to launch and add job: Failed to parse job spec XML, java.net.MalformedURLException","grpc_status":13}"
>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/opencue/venv/lib64/python3.9/site-packages/cuesubmit-0.14.5-py3.9.egg/cuesubmit/ui/Submit.py", line 530, in submit
    raise e
  File "/opt/opencue/venv/lib64/python3.9/site-packages/cuesubmit-0.14.5-py3.9.egg/cuesubmit/ui/Submit.py", line 526, in submit
    jobs = Submission.submitJob(jobData)
  File "/opt/opencue/venv/lib64/python3.9/site-packages/cuesubmit-0.14.5-py3.9.egg/cuesubmit/Submission.py", line 151, in submitJob
    return outline.cuerun.launch(ol, use_pycuerun=False)
  File "/opt/opencue/venv/lib64/python3.9/site-packages/pyoutline-0.14.5-py3.9.egg/outline/cuerun.py", line 101, in launch
    return launcher.launch(use_pycuerun)
  File "/opt/opencue/venv/lib64/python3.9/site-packages/pyoutline-0.14.5-py3.9.egg/outline/cuerun.py", line 219, in launch
    return self.__get_backend_module().launch(self, use_pycuerun=use_pycuerun)
  File "/opt/opencue/venv/lib64/python3.9/site-packages/pyoutline-0.14.5-py3.9.egg/outline/backend/cue.py", line 125, in launch
    jobs = opencue.api.launchSpecAndWait(launcher.serialize(use_pycuerun=use_pycuerun))
  File "/opt/opencue/venv/lib64/python3.9/site-packages/pycue-0.14.5-py3.9.egg/opencue/util.py", line 56, in _decorator
    future.utils.raise_with_traceback(
  File "/opt/opencue/venv/lib64/python3.9/site-packages/future/utils/__init__.py", line 421, in raise_with_traceback
    raise exc.with_traceback(traceback)
  File "/opt/opencue/venv/lib64/python3.9/site-packages/pycue-0.14.5-py3.9.egg/opencue/util.py", line 44, in _decorator
    return grpcFunc(*args, **kwargs)
  File "/opt/opencue/venv/lib64/python3.9/site-packages/pycue-0.14.5-py3.9.egg/opencue/api.py", line 377, in launchSpecAndWait
    jobSeq = Cuebot.getStub('job').LaunchSpecAndWait(
  File "/opt/opencue/venv/lib64/python3.9/site-packages/grpc/_interceptor.py", line 216, in __call__
    response, ignored_call = self._with_call(request,
  File "/opt/opencue/venv/lib64/python3.9/site-packages/grpc/_interceptor.py", line 257, in _with_call
    return call.result(), call
  File "/opt/opencue/venv/lib64/python3.9/site-packages/grpc/_channel.py", line 343, in result
    raise self
  File "/opt/opencue/venv/lib64/python3.9/site-packages/grpc/_interceptor.py", line 241, in continuation
    response, call = self._thunk(new_method).with_call(
  File "/opt/opencue/venv/lib64/python3.9/site-packages/grpc/_channel.py", line 957, in with_call
    return _end_unary_response_blocking(state, call, True, None)
  File "/opt/opencue/venv/lib64/python3.9/site-packages/grpc/_channel.py", line 849, in _end_unary_response_blocking
    raise _InactiveRpcError(state)
opencue.exception.CueInternalErrorException: Server caught an internal exception. Failed to launch and add job: Failed to parse job spec XML, java.net.MalformedURLException

Is there anything else needed to be able to debug it ? Thank you!

thunders82 avatar Mar 29 '22 15:03 thunders82

It seems the issue was due to an empty env variable : OL_CONFIG Once set accordingly I can submit a job.

Thanks

thunders82 avatar Mar 29 '22 17:03 thunders82

Adding to backlog. We need to at least display a more helpful error message here.

bcipriano avatar May 10 '22 19:05 bcipriano