Skip to content

Seqera Platform run hangs and lineage run record is lost with Channel or Value params #7758

Description

@pinin4fjords

Bug report

Expected behavior and actual behavior

A pipeline with a Channel<E> or Value<V> param in its params block, including one inside an included pipeline's params record (#7213), should report to Seqera Platform and record lineage like any other pipeline.

Instead, both serialize session.params on flow begin, while these params are still unbound dataflow values:

  • With -with-tower, the begin request blocks forever reading the channel. The run stays SUBMITTED with no tasks, and SIGTERM does not stop it. With only Value params it does not hang, but the request contains invalid JSON ("params":{"factor":{"source":},...}).
  • With lineage.enabled = true, the workflow run record fails to encode (logged at debug level only), so the run is missing from nextflow lineage list.

Steps to reproduce the problem

nextflow.enable.types = true

params {
    input: Channel<Sample>
    factor: Value<Integer>
}

record Sample {
    id: String
    count: Integer
}

process SCALE {
    input:
    s: Sample
    factor: Integer

    output:
    stdout()

    script:
    "echo ${s.id} \$(( ${s.count} * ${factor} ))"
}

workflow {
    main:
    SCALE( params.input, params.factor ).view()
}
printf 'id,count\na,1\n' > samples.csv
nextflow run main.nf --input samples.csv --factor 5 -with-tower <endpoint>
nextflow run main.nf --input samples.csv --factor 5 -c lineage.config   # lineage.enabled = true

Program output

Main thread with -with-tower:

"main" #1 WAITING (parking)
  at groovyx.gpars.dataflow.expression.DataflowExpression.getVal(DataflowExpression.java:261)
  ...
  at io.seqera.tower.plugin.TowerJsonGenerator.getObjectProperties(TowerJsonGenerator.groovy:64)
  ...
  at io.seqera.tower.plugin.TowerClient.traceBegin(TowerClient.groovy:130)
  at io.seqera.tower.plugin.TowerObserver.onFlowBegin(TowerObserver.groovy:246)

.nextflow.log with lineage enabled:

DEBUG nextflow.Session - Failed making field 'java.security.AccessControlContext#context' accessible; either increase its visibility or write a custom TypeAdapter for its declaring type.
com.google.gson.JsonIOException: Failed making field 'java.security.AccessControlContext#context' accessible; ...
  at nextflow.lineage.LinObserver.storeWorkflowRun(LinObserver.groovy:187)
  at nextflow.lineage.LinObserver.onFlowBegin(LinObserver.groovy:128)

Environment

  • Nextflow version: 26.09.1-edge (master d09c3c1)
  • Java version: 21.0.10
  • Operating system: macOS (aarch64)
  • Bash version: zsh 5.9

Additional context

Pipelines without dataflow params are not affected. Dataflow params were added by #7213 and are not in a release yet.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions