Skip to content

9.5.0 regression: no way to use a batch system + auto generated job store location #5581

Description

@mr-c

Use case: running the CWL conformance tests in parallel and thus not able to specify a unique --jobStore for each invocation

Previous to toil 9.5.0, then toil-cwl-runner would create one automatically:

toil/src/toil/cwl/cwltoil.py

Lines 5044 to 5045 in a9681fe

if options.jobStore is None:
jobstore = cwltool.utils.create_tmp_dir(tmp_outdir_prefix)
using --tmp-outdir-prefix or --tmpdir-prefix or tempfile.gettempdir() (which uses the first available of $TMPDIR, $TEMP, $TMP, /tmp, /var/tmp, or /usr/tmp)

However, since #5520 this functionality has been removed:

...
Test Workflow without outputs
Returned non-zero
Test 196 failed: toil-cwl-runner --singularity --disableCaching --disableProgress --defaultMemory=2G --maxMemory=2G --cwl-min-ram=2G --outdir=/scratch/PROJECT/USER/tmp//d51af243-00dc-43d0-8ce8-b2c087adc93e/outdir --log-dir=/scratch/PROJECT/USER/tmp//d51af243-00dc-43d0-8ce8-b2c087adc93e/logdir --tmpdir-prefix=/scratch/PROJECT/USER/tmp//d51af243-00dc-43d0-8ce8-b2c087adc93e/tmpdir --tmp-outdir-prefix=/scratch/PROJECT/USER/tmp//d51af243-00dc-43d0-8ce8-b2c087adc93e/tmpoutdir --workDir=/scratch/PROJECT/USER/tmp//d51af243-00dc-43d0-8ce8-b2c087adc93e/workdir --coordinationDir=/scratch/PROJECT/USER/tmp//d51af243-00dc-43d0-8ce8-b2c087adc93e/coordination --batchSystem slurm --bypass-file-store --outdir=/scratch/PROJECT/USER/tmp/d51af243-00dc-43d0-8ce8-b2c087adc93e/e98296cb-3edf-4e4b-a1d9-0758f8cd164b/tmprnnur56_ --quiet v1.0/anon_enum_inside_array.cwl v1.0/anon_enum_inside_array.yml
Test an anonymous enum inside an array inside a record
Returned non-zero
Length of workDir path "/scratch/PROJECT/USER/tmp/d51af243-00dc-43d0-8ce8-b2c087adc93e/workdir" is 85 characters.  Consider setting a shorter path with --workPath or setting TMPDIR to something like "/tmp" to avoid overly long paths.
Traceback (most recent call last):
  File "/project/PROJECT/USER/cwl-mpi/cwl-conformance-tests/runs/venv-toil/bin/toil-cwl-runner", line 6, in <module>
    sys.exit(main())
             ~~~~^^
  File "/project/PROJECT/USER/cwl-mpi/cwl-conformance-tests/runs/venv-toil/lib/python3.13/site-packages/toil/cwl/cwltoil.py", line 4273, in main
    options.jobStore = generate_default_job_store(
                       ~~~~~~~~~~~~~~~~~~~~~~~~~~^
        options.batchSystem, options.provisioner, jobstore, "cwl"
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/project/PROJECT/USER/cwl-mpi/cwl-conformance-tests/runs/venv-toil/lib/python3.13/site-packages/toil/jobStores/utils.py", line 140, in generate_default_job_store
    raise NoAvailableJobStoreException(
    ...<2 lines>...
    )
toil.jobStores.utils.NoAvailableJobStoreException: slurm batch system doesn't work with a default job store because it requires a shared filesystem. Please specify a file job store on shared storage with --jobStore.
Test 197 failed: toil-cwl-runner --singularity --disableCaching --disableProgress --defaultMemory=2G --maxMemory=2G --cwl-min-ram=2G --outdi...

┆Issue is synchronized with this Jira Story
┆Issue Number: TOIL-1867

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions