Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Michael R. Crusoe
    @mr-c
    @ionox0 There are two concepts here: how many utility jobs to run locally (like CWLGather and CWLScatter) that do no computation but are needed. And the second concept is: what is the maximum number of jobs (running and waiting ) that are allowed to be in the batch scheduler's queue?
    --maxLocalJobs is about the 1st concept; and the second concept has no command line parameter.
    Ian
    @ionox0
    I see

    I believe we have different versions of the code, I'm using 3.19, and my line which compares based on cores:

    sum(self.allocatedCpus.values()) < int(self.boss.maxCores)):

    seems to have been changed in your version to a comparison based on job count:

    len(self.runningJobs) < int(self.boss.config.maxLocalJobs):
    Upgrading to get that change alone would probably suffice for our purposes
    Ian
    @ionox0
    Although this change seems to have been in 3.18 and 3.18 and 3.20....
    either way, thank you, and probably no issue is necessary
    ralatsdc
    @ralatsdc
    Regarding my earlier question three: I have run a Docker image for SPAdes using apiDockerCall() and the 3.20.0 Toil appliance with autoscaling. I think this is excellent.
    Still sorting Pytpon 3 though in the toil appliance. I see that toil/docker/Docker.py specifies python 3.6 as a dependency. I can successfully make and run the docker image, and verify that versions of python exist. However toil is installed in the python 2 dist-packages, and does not play nicely with python 3. I am probably missing something elementary ...
    ralatsdc
    @ralatsdc
    Can anyone point me in the right direction?
    Ian
    @ionox0
    i believe Toil 3.20 only officially supports Python2.7 at the moment, although python3 support is in progress
    pcgen1
    @pcgen1
    Running toil 18.0 gives following error:
    File "/mnt/nfs/venv/lib/python3.6/site-packages/toil/common.py", line 1086, in writePIDFile
    f.write(str(os.getpid()))
    TypeError: a bytes-like object is required, not 'str'
    Could anyone suggest solution
    sorry to interrupt any ongoing conversation...
    pcgen1
    @pcgen1
    I meant TOIL 3.18
    Lon Blauvelt
    @DailyDreaming
    Are you attempting to run toil 3.18.0 with python 3?
    pcgen1
    @pcgen1
    Yes
    Lon Blauvelt
    @DailyDreaming
    Older versions of toil only support python 2.7. If you want to use python 3 I'd upgrade to the latest version.
    pcgen1
    @pcgen1
    I was told earlier 2 months ago in this group that it could run with python 3.6
    Oh ok
    I thought 3.18 is not too old...I have to choose 3.18 as a dependency to other tool in pipeline
    But 2.7 is becoming obsolete Jan 2020, hence wanted to use python 3
    pcgen1
    @pcgen1
    So, is the 'bytes-like object required' error with respect to python3? I believe its more related to _dump method (mixing bytes and str there): See this thread spotify/luigi#2215
    I meant 3.18 for TOIL , above
    Lon Blauvelt
    @DailyDreaming
    Any changes made to toil will be to the current development branch which will only be made accessible via new versions of toil. bytes and str differences are very common errors in py2 -> py3 compatibility, so I highly recommend either using python 2.7 or a newer version of toil. I don't believe that there were breaking API changes to toil between 3.18.0 and the current version, so if you can somehow get the current files on there and then change the version file to say 3.18.0, it ought to work. I think the right way of doing this though would be to relax the version requirement.
    pcgen1
    @pcgen1
    Ok, thank you!
    Peter Amstutz
    @tetron
    @DailyDreaming there's a question about toil-cwl-runner here maybe someone on the toil team could answer https://cwl.discourse.group/t/running-with-toil-cwl-how-to-interpret-the-stats/61
    Lon Blauvelt
    @DailyDreaming
    @tetron Replied. Thanks for the link!
    ralatsdc
    @ralatsdc
    ReadTimeout: UnixHTTPConnectionPool(host='localhost', port=None): Read timed out. (read timeout=60)
    Oh, apologies ... did not mean to post that ... though I have some explanation regarding setting the docker client timeout
    toil uses docker-py, and creates a docker client using client = docker.from_env(version='auto') where docker is imported from the docker-py package
    ralatsdc
    @ralatsdc
    The docker-py documentation indicates that the client timeout can be set using docker.from_env(timeout=120), for example
    So it does not appear to be possible to set the docker client timeout using toil's apiDockerCall()
    ralatsdc
    @ralatsdc
    Note that docker.from_env() gets the timeout from the keyword argument, or from docker.constants, using the value DEFAULT_TIMEOUT_SECONDS = 60
    So to increase the docker client timeout, it appears necessary to modifiy docker.constants in the docker-py installation.
    Would it make sense to add a timeout keyword argument to toil's apiDockerCall?
    Lon Blauvelt
    @DailyDreaming
    @ralatsdc If you are a user who would use this feature, I think it well worth adding and would be happy to review/accept a PR that adds it.
    Michael R. Crusoe
    @mr-c
    @KeteSakharova TOIL_LSF_ARGS="-g groupName"
    pvanheus
    @pvanheus
    I'm strucking to get singularity working with toil on our cluster (cluster is SLURM but not using that yet - just testing the Singularity part for now). log is https://gist.github.com/pvanheus/4dee60cd648dea893d16228d1f916cad
    the basic error is Failed to set loop flags on loop device: Resource temporarily unavailable from Singularity. To debug this I'd like to be able to extract the singularity command and containers that toil uses - how can I tell toil to nut clean up those temporary files?

    btw cwl is:

    cwlVersion: v1.0
    class: CommandLineTool
    baseCommand: echo
    stdout: output.txt
    hints:
    - class: DockerRequirement
      dockerPull: busybox:latest
    inputs:
      message:
        type: string
        inputBinding:
          position: 1
    outputs:
      output:
        type: stdout

    and example-job.cwl is

    message: Hello world!
    Michael R. Crusoe
    @mr-c
    @pvanheus Try with cwltool? :-) Or toil-cwl-runner --logDebug --debugWorker
    @pvanheus Failed to set loop flags on loop device: Resource temporarily unavailable is a Singularity error. Literally you need more /dev/loopN devices
    @pvanheus Another thing to add to the toil/cwltool FAQs :-P
    pvanheus
    @pvanheus
    @mr-c I've seen this error before - as I recall its about singularity settings not loop devices. I will debug further