Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-12686

Predefined parameters on a post-join build are evaluated by a child job rather than parent

      I have a diamond build setup that runs across several machines. The first job runs on the parent node, then kicks off jobs on multiple child nodes, as well as on itself...then a join build is done on a grandchild node.
      I have a list of predefined parameters, one of which recently failed on me unexpectedly:
      TIMESTAMP=${BUILD_ID}_${NODE_NAME}

      I expect these predefined parameters to evaluate on the parent node, where they are configured (this is how they are evaluated on the pass-off to its children). However, I just witnessed a grandchild build (during the join action) evaluate these environment variables from a child node (The build_id and node_names were changed to that of a child job). I'm guessing it was evaluated from the last job/node to finish, but that wouldn't exactly explain all the other times this has worked correctly.

          [JENKINS-12686] Predefined parameters on a post-join build are evaluated by a child job rather than parent

          Michael Conlon created issue -
          Michael Conlon made changes -
          Description Original: I have a diamond build setup that runs across several machines. The first job runs on the parent node, then kicks off jobs on multiple child nodes, as well as on itself...then a join build is done on a grandchild node.
          I have a list of predefined parameters, one of which recently failed on me unexpectedly:
          TIMESTAMP=${BUILD_ID}_${NODE_NAME}

          I expect these predefined parameters to evaluate on the parent node, where they are configured (this is how they are evaluated on the pass-off to its children). However, I just witnessed a grandchild build evaluate these environment variables during the join action, from a child node (The build_id and node_names were changed). I'm guessing it was evaluated from the last job/node to finish, but that wouldn't exactly explain all the other times this has worked correctly.
          New: I have a diamond build setup that runs across several machines. The first job runs on the parent node, then kicks off jobs on multiple child nodes, as well as on itself...then a join build is done on a grandchild node.
          I have a list of predefined parameters, one of which recently failed on me unexpectedly:
          TIMESTAMP=${BUILD_ID}_${NODE_NAME}

          I expect these predefined parameters to evaluate on the parent node, where they are configured (this is how they are evaluated on the pass-off to its children). However, I just witnessed a grandchild build (during the join action) evaluate these environment variables from a child node (The build_id and node_names were changed to that of a child job). I'm guessing it was evaluated from the last job/node to finish, but that wouldn't exactly explain all the other times this has worked correctly.
          Dominik Bartholdi made changes -
          Assignee Original: Dominik Bartholdi [ domi ] New: huybrechts [ huybrechts ]
          Dominik Bartholdi made changes -
          Component/s Original: nodelabelparameter [ 15873 ]
          ikedam made changes -
          Resolution New: Cannot Reproduce [ 5 ]
          Status Original: Open [ 1 ] New: Resolved [ 5 ]
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 143143 ] New: JNJira + In-Review [ 190410 ]

            huybrechts huybrechts
            mconlon Michael Conlon
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: