AcademySoftwareFoundation / AcademySoftwareFoundation/OpenCue

sandbox quick start guide fails to submit jobs

Closed
#915 4 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
957
Forks
259
Avg merge
3d 6h
Merged PRs (30d)
16

Description

**Describe the bug**

Following the [linux quickstart guide](https://www.opencue.io/docs/quick-starts/quick-start-linux/) for spinning up a deployment with docker-compose fails

**To Reproduce**
Steps to reproduce the behavior:
1. Follow guide and spin up sandbox deployment with docker-compse
2. Follow guide and install python modules into virtual env
3. Submit a job with APIusing following script
```python
#!/usr/bin/env python
from outline import Outline
from outline.cuerun import OutlineLauncher
from outline.modules.shell import Shell
from outline.depend import DependType

layer1 = Shell('layer1', command=['sleep 1'], range='1001-1100', threads=1, threadable=True)
layer2 = Shell('layer2', command=['echo $CUE_IFRAME'], range='1001-1100', threads=1, threadable=True)
layer2.depend_on(on_layer=layer1, depend_type=DependType.FrameByFrame)

ol = Outline(name='testing', name_unique=True)
ol.add_layer(layer1)
ol.add_layer(layer2)

launcher = OutlineLauncher(ol)

jobs = launcher.launch(False)
print(jobs)
```

Get the following error

```
jobs = launcher.launch(False)
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/outline/cuerun.py", line 219, in launch
return self.__get_backend_module().launch(self, use_pycuerun=use_pycuerun)
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/outline/backend/cue.py", line 124, in launch
jobs = opencue.api.launchSpecAndWait(launcher.serialize(use_pycuerun=use_pycuerun))
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/opencue/util.py", line 57, in _decorator
exception(exception.failMsg.format(details=details)))
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/opencue/util.py", line 44, in _decorator
return grpcFunc(*args, **kwargs)
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/opencue/api.py", line 378, in launchSpecAndWait
job_pb2.JobLaunchSpecAndWaitRequest(spec=spec), timeout=Cuebot.Timeout).jobs
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/grpc/_channel.py", line 533, in __call__
return _end_unary_response_blocking(state, call, False, None)
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/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.io.FileNotFoundException: http://localhost:8080/spcue/dtd/cjsl-1.11.dtd
```

**Expected behavior**

Job should submit without error

**Additional context**

@larsbijl comment [here](https://github.com/AcademySoftwareFoundation/OpenCue/issues/896#issuecomment-772849398) highlights the cause of the inssue. The sandbox docker-compose is pulling an outdated cuebot image from `opencue/cuebot`
```
cuebot:
image: opencue/cuebot
```

**Possible Solutions**

One solution is to build the docker image from source by modifying the `docker-compose.yml`:
```
cuebot:
build:
context: ./
dockerfile: ./cuebot/Dockerfile
```

And then doing a build before running:

```bash
docker-compose --project-directory . -f sandbox/docker-compose.yml build
```

This has the drawback that the build process is quite slow, and this still requires updating the docs to add the build step.

The other, more desirable, solution is to push updated docker images.

Contributor guide

Open the contributing guide

Research direction

Start with sandbox/docker-compose.yml and the Linux quick-start guide, then reproduce the deployment and submission steps using the provided Python script. Inspect the cuebot image reference and the documented build or image-update path. Done means the sandbox starts from the documented commands, the job submits without the missing cjsl-1.11.dtd error, and the guide matches the working setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, docker-compose, python
Domain
devops, documentation, infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.