Skip to content

[JENKINS-57576] node and label parameters try to allocate flyweight executor when used in Pipeline jobs #562

@jenkins-infra-bot

Description

@jenkins-infra-bot

Whenever using the node label paramter plugin to parameterize a Pipeline job it tries to allocate a flyweight executor on the node given as parameter.

However the Pipeline script itselt seems to be still executed on the master.

But it still has some influence on the Pipeline execution as - depending on the node selected - sometimes our implicitly loaded global shared Pipeline library cannot be cloned.

Please check following simple script. Put the node offline before running - you'll see that the Pipeline is waiting for that node. However if you just block the selected node by running some other job it'll still execute. And - anyway - the job should not be blocked until it finally reaches the node block which actually uses that node.

properties([
    parameters([
[$class: 'NodeParameterDefinition',
    allowedSlaves: [],
    defaultSlaves: [],
    description: '',
    name: 'foo',
    nodeEligibility: [$class: 'AllNodeEligibility'],
    triggerIfResult: 'multiSelectionDisallowed'
]
    ])
])

Originally reported by macdrega, imported from: node and label parameters try to allocate flyweight executor when used in Pipeline jobs
  • status: Open
  • priority: Major
  • component(s): nodelabelparameter-plugin
  • resolution: Unresolved
  • votes: 0
  • watchers: 2
  • imported: 20251210-235911
Raw content of original issue

Whenever using the node label paramter plugin to parameterize a Pipeline job it tries to allocate a flyweight executor on the node given as parameter.

However the Pipeline script itselt seems to be still executed on the master.

But it still has some influence on the Pipeline execution as - depending on the node selected - sometimes our implicitly loaded global shared Pipeline library cannot be cloned.

Please check following simple script. Put the node offline before running - you'll see that the Pipeline is waiting for that node. However if you just block the selected node by running some other job it'll still execute. And - anyway - the job should not be blocked until it finally reaches the node block which actually uses that node.

properties([
    parameters([
        [$class: 'NodeParameterDefinition',
            allowedSlaves: [],
            defaultSlaves: [],
            description: '',
            name: 'foo',
            nodeEligibility: [$class: 'AllNodeEligibility'],
            triggerIfResult: 'multiSelectionDisallowed'
        ]
    ])
])
  • environment: node label parameter plugin v1.7.2

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions