You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If a channel is created via channel.value() and passed directly to a process, nextflow hangs forever.
Expected behavior and actual behavior
I assumed that passing channel.value() would work for passing optional inputs that I always want to evaluate to false, as it seems to create a value channel with null as the value. But doing this will just hang the nextflow process with no error message.
I notice the docs specifically mention that channel.value(null) isn't allowed, which seems to result in identical behaviour to channel.value(). I also notice that passing null directly to a process results in an error message. So maybe the expected behaviour here is to throw the same error message instead of hanging?
Script to reproduce
process P {
input:
val empty
exec:
println empty
}
workflow {
P(
channel.value()
)
}
Output (this doesn't error out, just hangs)
N E X T F L O W ~ version 24.03.0-edge
Launching `main.nf` [ecstatic_jepsen] DSL2 - revision: 0527d9bad8
[- ] process > P -
really I think channel.value() with no argument should not be allowed. there is already channel.empty() to create an empty queue channel which should terminate properly
optional process inputs should be handled by providing a default value such as an empty string or list. this is a bit ugly but I think it will be improved once we implement static typed process inputs
If a channel is created via
channel.value()
and passed directly to a process, nextflow hangs forever.Expected behavior and actual behavior
I assumed that passing
channel.value()
would work for passing optional inputs that I always want to evaluate to false, as it seems to create a value channel with null as the value. But doing this will just hang the nextflow process with no error message.I notice the docs specifically mention that
channel.value(null)
isn't allowed, which seems to result in identical behaviour tochannel.value()
. I also notice that passingnull
directly to a process results in an error message. So maybe the expected behaviour here is to throw the same error message instead of hanging?Script to reproduce
Output (this doesn't error out, just hangs)
.nextflow.log
Environment
The text was updated successfully, but these errors were encountered: