-
Notifications
You must be signed in to change notification settings - Fork 667
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SLURM SBATCH time setting wrong #5775
Comments
Note this bug is occurring with v24.10.3 but not with v23.04.1. So there is a bug in v24.10.3. |
Just to add more info in case relevant to fixing the bug: this bug occurs for a repo on github in which I put an empty nextflow.config file as required by nextflow. |
I just tested various versions. The bug started in 24.04.0. Looking at git blame, the last time SLURM task execution changed substantially was at 24.04.0 for array submissions: #3892 So my strong suspicion is this change introduced this bug. I'm surprised others have not reported it yet. |
Actually I think it was introduced by the The time setting for a task is computed here: nextflow/modules/nextflow/src/main/groovy/nextflow/processor/TaskConfig.groovy Lines 292 to 321 in 5ead5ba
And the time setting is added to the SLURM job here: nextflow/modules/nextflow/src/main/groovy/nextflow/executor/SlurmExecutor.groovy Lines 80 to 82 in 5ead5ba
So |
Oh, I see the problem now: resourceLimits = [
time: 7d
]
|
Thanks! But not sure I follow why 7d isn't a legitimate notation? 7h for example works in process time directives. Is this behavior documented? |
(The intention is a limit of 7 days) |
It is a notation for numeric literals that Groovy inherits from Java (which copied it from C/C++). It allows you to be very precise about the numeric type that you want to use. For example, these are all valid ways to denote the number 7: 7 // 32-bit integer (default)
7L // 64-bit integer ("long")
7f // 32-bit floating-point ("float")
7d // 64-bit floating-point ("double") I come from a more low-level programming background so I'm used to this, but I suspect most Nextflow users don't know and don't care about how a number is being stored in memory. I had thought it wouldn't hurt anything, but considering how close it is syntactically to a duration like
|
Does '7d' denote 7 days with quotes? |
Yes, it will work if you have quotes, because then it's a string |
Hi, For nextflow v24.10.3 all SLURM scripts generated by nextflow are being assigned time = 0:
Even though the processes are defined with specific times in this format:
time '10h'
There is no configuration I can think of that could cause something like this.
General config looks like this:
Any idea how this could be occurring?
The text was updated successfully, but these errors were encountered: