OpenCue
OpenCue copied to clipboard
can't submit any jobs via Cuesubmit UI - Failed to parse job spec XML, java.net.MalformedURLException
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.
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.
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.
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.
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!
It seems the issue was due to an empty env variable : OL_CONFIG Once set accordingly I can submit a job.
Thanks
Adding to backlog. We need to at least display a more helpful error message here.