Closed caballero closed 3 years ago
Notes for others reviewing this: I presume that @caballero is using toil-cwl-runner
and one of his CWL CommandLineTool
s calls a local program namedflye
@caballero is that too-long path the working directory (also known as $(runtime.outdir)
) or the temporary directory (also known as $(runtime.tmpdir)
) ?
I bet the reason this hasn't come up before is that when toil-cwl-runner
is used with a DockerRequirement
then the long paths get mapped into short paths via docker
or singularity
so the problem goes away.
@caballero as a workaround, try setting TMPDIR to a shorter path as part of the CWL CommandLineTool description for flye
hints:
EnvVarRequirement:
TMPDIR: /tmp # or /scratch/something; whatever is appropriate for where this is running
I found that workaround by doing a web search for python multiprocessing path too long
which lead me to https://github.com/broadinstitute/cromwell/issues/3647
@mr-c Ha, I enjoyed the cromwell link. I liked their notion of checking the initial length of the tmpdir and we should probably incorporate that as well.
This ticket may want to be reworking how the directories in the filestore are laid out (currently jobtempdir inside of workflowdir inside of workdir). I'll try and explore this tomorrow.
This was solved in 5.2.0, thanks devs
I am running Toil 5.1.0 in an LSF cluster, one of the steps in my workflow (Flye assembly) is failing because it uses socket.bind with Python, the error is "AF_UNIX path too long"
This is the error on Flye step:
after modifiying "connection.py" to print the address to bind I got:
which is 252 chars, Unix sockets allowed only <200 chars.
Any chance that toil can generate shorted paths in toil?
┆Issue is synchronized with this Jira Task ┆Issue Number: TOIL-758