-
Notifications
You must be signed in to change notification settings - Fork 245
Open
Description
https://github.com/common-workflow-language/cwltool/blob/main/docs/processgen.rst
Toil cannot pickle a cwltool:ProcessGenerator object. This is presumably a simple fix; it appears that one additional clause needs to be inserted into the remove_pickle_problems
function. https://github.com/DataBiosphere/toil/blob/master/src/toil/cwl/cwltoil.py#L2663 (I attempted to do this myself, without success.)
Attached is a minimal reproducible example:
pytoolgen.txt
zing.txt
cwltool --enable-dev --enable-ext pytoolgen.txt zing.txt
INFO /Users/jakefennick/miniconda3/envs/base/bin/cwltool 3.1.20221201130942
INFO Resolved 'pytoolgen.txt' to 'file:///Users/jakefennick/pytoolgen.txt'
INFO [job 9017565b-d135-4bde-82b1-4670ffcb89a6] /private/tmp/docker_tmpf4zqaizr$ python \
inp.py > /private/tmp/docker_tmpf4zqaizr/main.cwl
INFO [job 9017565b-d135-4bde-82b1-4670ffcb89a6] completed success
INFO [job main.cwl] /private/tmp/docker_tmprwmwgvq9$ echo \
blurf
blurf
INFO [job main.cwl] completed success
{
"runProcess": {
"location": "file:///Users/jakefennick/main.cwl",
"basename": "main.cwl",
"class": "File",
"checksum": "sha1$0cbf24b48a78fb6559954b959da950120aeb514f",
"size": 97,
"path": "/Users/jakefennick/main.cwl"
}
}
INFO Final process status is success
toil-cwl-runner --enable-dev --enable-ext pytoolgen.txt zing.txt
[2023-03-08T11:50:32-0700] [MainThread] [I] [cwltool] Resolved 'pytoolgen.txt' to 'file:///Users/jakefennick/pytoolgen.txt'
[2023-03-08T11:50:33-0700] [MainThread] [I] [toil.job] Saving graph of 1 jobs, 1 new
[2023-03-08T11:50:33-0700] [MainThread] [I] [toil.job] Processing job 'CWLJob' pytoolgen.txt kind-CWLJob/instance-brwrvhot v0
Traceback (most recent call last):
File "/Users/jakefennick/miniconda3/envs/base/bin/toil-cwl-runner", line 8, in <module>
sys.exit(main())
^^^^^^
File "/Users/jakefennick/miniconda3/envs/base/lib/python3.11/site-packages/toil/cwl/cwltoil.py", line 3794, in main
outobj = toil.start(wf1)
^^^^^^^^^^^^^^^
File "/Users/jakefennick/miniconda3/envs/base/lib/python3.11/site-packages/toil/common.py", line 1026, in start
rootJobDescription = rootJob.saveAsRootJob(self._jobStore)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jakefennick/miniconda3/envs/base/lib/python3.11/site-packages/toil/job.py", line 2586, in saveAsRootJob
self._saveJobGraph(jobStore, saveSelf=True)
File "/Users/jakefennick/miniconda3/envs/base/lib/python3.11/site-packages/toil/job.py", line 2559, in _saveJobGraph
job.saveBody(jobStore)
File "/Users/jakefennick/miniconda3/envs/base/lib/python3.11/site-packages/toil/job.py", line 2455, in saveBody
pickle.dump(self, fileHandle, pickle.HIGHEST_PROTOCOL)
AttributeError: Can't pickle local object 'Loader.__init__.<locals>.<lambda>'
┆Issue is synchronized with this Jira Story
┆Issue Number: TOIL-1300