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

Problem with the parameter value rendering for cascading parameters in the Jenkins Active Choices Plugin

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Critical Critical
    • active-choices-plugin
    • Jenkins version: 2.440.1 LTS (JDK17)

      Active Choices plugin version: 2.8.1
      (confirmed presence in v2.8.0-v2.8.4, allegedly present in v2.7.x, allegedly not present in v2.6.x)

      Jenkins Active Choices Plugin Parameter Rendering Bug

      This is a formal report of the issue related to the cascading parameters bug.

      The bug is related to the problem with the parameter value rendering for cascading parameters in the Jenkins Active Choices Plugin, primarily with the ordering of the dependent parameters.

      This issue has been reported already on multiple occasions:

      The bug caused cascading parameters (dynamic parameters + dynamic reference parameters) not to render correctly - the parameter values not being updated during the build UI interaction due to the lack of proper change propagation logic in the plugin.

      The Problem

      Our suspicion is that the root cause of the problem is most likely in one of the following:

      • UnoChoice frontend code
        • CascadeParameter.update() / DynamicReferenceParameter.update() methods
          • The methods returning prematurely due to incorrect use of asynchronous calls (e.g. Promise objects)
        • proxy.doUpdate() method
          • Potentially similar issues as stated above
      • Plugin Java code
        • AbstractCascadableParameter.update() method

      What is important to note is that the key problem is the clash between the parameter rendering timing which results in the wrong order of parameter rendering and the lack of proper change propagation logic in the plugin.

      The Solution (Workaround)

      We created a dedicated project for applying a fix / patch as a workaround for this project.

      More info is available here (on our GitHub).

      Pre-built patched bundles of the plugin (containing the workaround) are available here (on our GitHub) while we all wait for the maintainers to address and fix the issue.
      But please, make sure to read the associated documentation for a better understanding of what this workaround does, how it works, and what are its limitations. Also, preferably, for security reasons, you should build the patched plugin bundle yourself.

      We will also submit a proper PR which addresses this issue and attempts to fix it, but due to the nature of our current fix (a lot of code logic being appended to an existing JavaScript file), we are not sure what will the maintainers' reception be.

          [JENKINS-73935] Problem with the parameter value rendering for cascading parameters in the Jenkins Active Choices Plugin

          Hossted created issue -
          Hossted made changes -
          Description Original: h1. Jenkins Active Choices Plugin Parameter Rendering Bug

          This is a formal report of the issue related to cascading parameters issue.

          The bug is related to the problem with the parameter value rendering for cascading parameters in the Jenkins Active Choices Plugin.

          This issue has been reported already on multiple occasions:
           * [JENKINS-71909|https://issues.jenkins.io/browse/JENKINS-71909]
           * [JENKINS-72826|https://issues.jenkins.io/browse/JENKINS-72826]
           * [JENKINS-73239|https://issues.jenkins.io/browse/JENKINS-73239]
           * [JENKINS-73928|https://issues.jenkins.io/browse/JENKINS-73928]

          The bug caused cascading parameters (dynamic parameters + dynamic reference parameters) not to render correctly - the parameter values not being updated during the build UI interaction due to the lack of proper change propagation logic in the plugin.
          h2. The Problem

          Our suspicion is that the root cause of the problem is most likely in one of the following:
           * [_UnoChoice_ frontend code|https://github.com/jenkinsci/active-choices-plugin/blob/master/src/main/resources/org/biouno/unochoice/stapler/unochoice/UnoChoice.es6]
           ** {{CascadeParameter.update()}} / {{DynamicReferenceParameter.update()}} methods
           *** The methods returning prematurely due to incorrect use of asynchronous calls (e.g. {{Promise}} objects)
           ** {{proxy.doUpdate()}} method
           *** Potentially similar issues as stated above
           * [Plugin Java code|https://github.com/jenkinsci/active-choices-plugin/blob/master/src/main/java/org/biouno/unochoice/AbstractCascadableParameter.java]
           ** {{AbstractCascadableParameter.update()}} method

          What is important to note is that the key problem is the clash between the parameter rendering timing which results in the wrong order of parameter rendering and the lack of proper change propagation logic in the plugin.
          h2. The Solution (Workaround)

          We created a dedicated project for applying a fix / patch as a workaround for this project.

          More info is available [here|https://github.com/hossted-prs/jenkins-ac-plugin-cascading-workaround].

          We will also submit a proper PR which addresses this issue and attempts to fix it, but due to the nature of our current fix (a lot of code logic being appended to an existing JavaScript file), we are not sure what will the maintainers' reception be.
          New: h1. Jenkins Active Choices Plugin Parameter Rendering Bug

          This is a formal report of the issue related to cascading parameters issue.

          The bug is related to the problem with the parameter value rendering for cascading parameters in the Jenkins Active Choices Plugin, primarily with the ordering of the dependent parameters.

          This issue has been reported already on multiple occasions:
           * [JENKINS-71909|https://issues.jenkins.io/browse/JENKINS-71909]
           * [JENKINS-72826|https://issues.jenkins.io/browse/JENKINS-72826]
           * [JENKINS-73239|https://issues.jenkins.io/browse/JENKINS-73239]
           * [JENKINS-73928|https://issues.jenkins.io/browse/JENKINS-73928]

          The bug caused cascading parameters (dynamic parameters + dynamic reference parameters) not to render correctly - the parameter values not being updated during the build UI interaction due to the lack of proper change propagation logic in the plugin.
          h2. The Problem

          Our suspicion is that the root cause of the problem is most likely in one of the following:
           * [_UnoChoice_ frontend code|https://github.com/jenkinsci/active-choices-plugin/blob/master/src/main/resources/org/biouno/unochoice/stapler/unochoice/UnoChoice.es6]
           ** {{CascadeParameter.update()}} / {{DynamicReferenceParameter.update()}} methods
           *** The methods returning prematurely due to incorrect use of asynchronous calls (e.g. {{Promise}} objects)
           ** {{proxy.doUpdate()}} method
           *** Potentially similar issues as stated above
           * [Plugin Java code|https://github.com/jenkinsci/active-choices-plugin/blob/master/src/main/java/org/biouno/unochoice/AbstractCascadableParameter.java]
           ** {{AbstractCascadableParameter.update()}} method

          What is important to note is that the key problem is the clash between the parameter rendering timing which results in the wrong order of parameter rendering and the lack of proper change propagation logic in the plugin.
          h2. The Solution (Workaround)

          We created a dedicated project for applying a fix / patch as a workaround for this project.

          More info is available [here|https://github.com/hossted-prs/jenkins-ac-plugin-cascading-workaround].

          We will also submit a proper PR which addresses this issue and attempts to fix it, but due to the nature of our current fix (a lot of code logic being appended to an existing JavaScript file), we are not sure what will the maintainers' reception be.
          Hossted made changes -
          Description Original: h1. Jenkins Active Choices Plugin Parameter Rendering Bug

          This is a formal report of the issue related to cascading parameters issue.

          The bug is related to the problem with the parameter value rendering for cascading parameters in the Jenkins Active Choices Plugin, primarily with the ordering of the dependent parameters.

          This issue has been reported already on multiple occasions:
           * [JENKINS-71909|https://issues.jenkins.io/browse/JENKINS-71909]
           * [JENKINS-72826|https://issues.jenkins.io/browse/JENKINS-72826]
           * [JENKINS-73239|https://issues.jenkins.io/browse/JENKINS-73239]
           * [JENKINS-73928|https://issues.jenkins.io/browse/JENKINS-73928]

          The bug caused cascading parameters (dynamic parameters + dynamic reference parameters) not to render correctly - the parameter values not being updated during the build UI interaction due to the lack of proper change propagation logic in the plugin.
          h2. The Problem

          Our suspicion is that the root cause of the problem is most likely in one of the following:
           * [_UnoChoice_ frontend code|https://github.com/jenkinsci/active-choices-plugin/blob/master/src/main/resources/org/biouno/unochoice/stapler/unochoice/UnoChoice.es6]
           ** {{CascadeParameter.update()}} / {{DynamicReferenceParameter.update()}} methods
           *** The methods returning prematurely due to incorrect use of asynchronous calls (e.g. {{Promise}} objects)
           ** {{proxy.doUpdate()}} method
           *** Potentially similar issues as stated above
           * [Plugin Java code|https://github.com/jenkinsci/active-choices-plugin/blob/master/src/main/java/org/biouno/unochoice/AbstractCascadableParameter.java]
           ** {{AbstractCascadableParameter.update()}} method

          What is important to note is that the key problem is the clash between the parameter rendering timing which results in the wrong order of parameter rendering and the lack of proper change propagation logic in the plugin.
          h2. The Solution (Workaround)

          We created a dedicated project for applying a fix / patch as a workaround for this project.

          More info is available [here|https://github.com/hossted-prs/jenkins-ac-plugin-cascading-workaround].

          We will also submit a proper PR which addresses this issue and attempts to fix it, but due to the nature of our current fix (a lot of code logic being appended to an existing JavaScript file), we are not sure what will the maintainers' reception be.
          New: h1. Jenkins Active Choices Plugin Parameter Rendering Bug

          This is a formal report of the issue related to the cascading parameters bug.

          The bug is related to the problem with the parameter value rendering for cascading parameters in the Jenkins Active Choices Plugin, primarily with the ordering of the dependent parameters.

          This issue has been reported already on multiple occasions:
           * [JENKINS-71909|https://issues.jenkins.io/browse/JENKINS-71909]
           * [JENKINS-72826|https://issues.jenkins.io/browse/JENKINS-72826]
           * [JENKINS-73239|https://issues.jenkins.io/browse/JENKINS-73239]
           * [JENKINS-73928|https://issues.jenkins.io/browse/JENKINS-73928]

          The bug caused cascading parameters (dynamic parameters + dynamic reference parameters) not to render correctly - the parameter values not being updated during the build UI interaction due to the lack of proper change propagation logic in the plugin.
          h2. The Problem

          Our suspicion is that the root cause of the problem is most likely in one of the following:
           * [_UnoChoice_ frontend code|https://github.com/jenkinsci/active-choices-plugin/blob/master/src/main/resources/org/biouno/unochoice/stapler/unochoice/UnoChoice.es6]
           ** {{CascadeParameter.update()}} / {{DynamicReferenceParameter.update()}} methods
           *** The methods returning prematurely due to incorrect use of asynchronous calls (e.g. {{Promise}} objects)
           ** {{proxy.doUpdate()}} method
           *** Potentially similar issues as stated above
           * [Plugin Java code|https://github.com/jenkinsci/active-choices-plugin/blob/master/src/main/java/org/biouno/unochoice/AbstractCascadableParameter.java]
           ** {{AbstractCascadableParameter.update()}} method

          What is important to note is that the key problem is the clash between the parameter rendering timing which results in the wrong order of parameter rendering and the lack of proper change propagation logic in the plugin.
          h2. The Solution (Workaround)

          We created a dedicated project for applying a fix / patch as a workaround for this project.

          More info is available [here|https://github.com/hossted-prs/jenkins-ac-plugin-cascading-workaround].

          We will also submit a proper PR which addresses this issue and attempts to fix it, but due to the nature of our current fix (a lot of code logic being appended to an existing JavaScript file), we are not sure what will the maintainers' reception be.
          Hossted made changes -
          Description Original: h1. Jenkins Active Choices Plugin Parameter Rendering Bug

          This is a formal report of the issue related to the cascading parameters bug.

          The bug is related to the problem with the parameter value rendering for cascading parameters in the Jenkins Active Choices Plugin, primarily with the ordering of the dependent parameters.

          This issue has been reported already on multiple occasions:
           * [JENKINS-71909|https://issues.jenkins.io/browse/JENKINS-71909]
           * [JENKINS-72826|https://issues.jenkins.io/browse/JENKINS-72826]
           * [JENKINS-73239|https://issues.jenkins.io/browse/JENKINS-73239]
           * [JENKINS-73928|https://issues.jenkins.io/browse/JENKINS-73928]

          The bug caused cascading parameters (dynamic parameters + dynamic reference parameters) not to render correctly - the parameter values not being updated during the build UI interaction due to the lack of proper change propagation logic in the plugin.
          h2. The Problem

          Our suspicion is that the root cause of the problem is most likely in one of the following:
           * [_UnoChoice_ frontend code|https://github.com/jenkinsci/active-choices-plugin/blob/master/src/main/resources/org/biouno/unochoice/stapler/unochoice/UnoChoice.es6]
           ** {{CascadeParameter.update()}} / {{DynamicReferenceParameter.update()}} methods
           *** The methods returning prematurely due to incorrect use of asynchronous calls (e.g. {{Promise}} objects)
           ** {{proxy.doUpdate()}} method
           *** Potentially similar issues as stated above
           * [Plugin Java code|https://github.com/jenkinsci/active-choices-plugin/blob/master/src/main/java/org/biouno/unochoice/AbstractCascadableParameter.java]
           ** {{AbstractCascadableParameter.update()}} method

          What is important to note is that the key problem is the clash between the parameter rendering timing which results in the wrong order of parameter rendering and the lack of proper change propagation logic in the plugin.
          h2. The Solution (Workaround)

          We created a dedicated project for applying a fix / patch as a workaround for this project.

          More info is available [here|https://github.com/hossted-prs/jenkins-ac-plugin-cascading-workaround].

          We will also submit a proper PR which addresses this issue and attempts to fix it, but due to the nature of our current fix (a lot of code logic being appended to an existing JavaScript file), we are not sure what will the maintainers' reception be.
          New: h1. Jenkins Active Choices Plugin Parameter Rendering Bug

          This is a formal report of the issue related to the cascading parameters bug.

          The bug is related to the problem with the parameter value rendering for cascading parameters in the Jenkins Active Choices Plugin, primarily with the ordering of the dependent parameters.

          This issue has been reported already on multiple occasions:
           * [JENKINS-71909|https://issues.jenkins.io/browse/JENKINS-71909]
           * [JENKINS-72826|https://issues.jenkins.io/browse/JENKINS-72826]
           * [JENKINS-73239|https://issues.jenkins.io/browse/JENKINS-73239]
           * [JENKINS-73928|https://issues.jenkins.io/browse/JENKINS-73928]

          The bug caused cascading parameters (dynamic parameters + dynamic reference parameters) not to render correctly - the parameter values not being updated during the build UI interaction due to the lack of proper change propagation logic in the plugin.
          h2. The Problem

          Our suspicion is that the root cause of the problem is most likely in one of the following:
           * [_UnoChoice_ frontend code|https://github.com/jenkinsci/active-choices-plugin/blob/master/src/main/resources/org/biouno/unochoice/stapler/unochoice/UnoChoice.es6]
           ** {{CascadeParameter.update()}} / {{DynamicReferenceParameter.update()}} methods
           *** The methods returning prematurely due to incorrect use of asynchronous calls (e.g. {{Promise}} objects)
           ** {{proxy.doUpdate()}} method
           *** Potentially similar issues as stated above
           * [Plugin Java code|https://github.com/jenkinsci/active-choices-plugin/blob/master/src/main/java/org/biouno/unochoice/AbstractCascadableParameter.java]
           ** {{AbstractCascadableParameter.update()}} method

          What is important to note is that the key problem is the clash between the parameter rendering timing which results in the wrong order of parameter rendering and the lack of proper change propagation logic in the plugin.
          h2. The Solution (Workaround)

          We created a dedicated project for applying a fix / patch as a workaround for this project.

          More info is available [here (on our GitHub)|https://github.com/hossted-prs/jenkins-ac-plugin-cascading-workaround/].

          Pre-built patched bundles of the plugin (containing the workaround) are available [here (on our GitHub)|https://github.com/hossted-prs/jenkins-ac-plugin-cascading-workaround/releases/] while we all wait for the maintainers to address and fix the issue.
          But please, make sure to read the associated documentation for a better understanding of what this workaround does, how it works, and what are its limitations. Also, preferably, for security reasons, you should build the patched plugin bundle yourself.

          We will also submit a proper PR which addresses this issue and attempts to fix it, but due to the nature of our current fix (a lot of code logic being appended to an existing JavaScript file), we are not sure what will the maintainers' reception be.
          Hossted made changes -
          Environment Original: Jenkins version: 2.440.1 LTS (JDK17)
          Active Choices plugin version: 2.8.1
          New: Jenkins version: 2.440.1 LTS (JDK17)

          Active Choices plugin version: 2.8.1
          (confirmed presence in v2.8.0-v2.8.4, allegedly present in v2.7.x, allegedly not present in v2.6.x)
          Elod made changes -
          Rank New: Ranked higher
          Michael Moossen made changes -
          Priority Original: Major [ 3 ] New: Critical [ 2 ]
          Bruno P. Kinoshita made changes -
          Link New: This issue is related to JENKINS-71909 [ JENKINS-71909 ]

            kinow Bruno P. Kinoshita
            hossted Hossted
            Votes:
            9 Vote for this issue
            Watchers:
            15 Start watching this issue

              Created:
              Updated: