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

Optional Extensions should be reloaded when dependencies are dynamically loaded

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • core
    • None

      If a plugin A has an optional dependency on plugin B, and has marked an @Extension (optional=true), Jenkins will properly fail to load that extension. However, if plugin B is then later installed, the optional dependencies from plugin A are not re-evaluated.

      Jenkins should keep track of optional extensions which failed to load, and retry them when new plugins are installed. Perhaps it could only due so if the plugin for that extension expressed an optional dependency on the newly installed plugin, but even that doesn't seem necessary?

      This is really just a usability issue (since you can restart to fix it), but may prove frustrating for novice users.

          [JENKINS-14392] Optional Extensions should be reloaded when dependencies are dynamically loaded

          Daniel Beck added a comment -

          Was this resolved in JENKINS-19976?

          Daniel Beck added a comment - Was this resolved in JENKINS-19976 ?

          James Nord added a comment -

          danielbeck no... I was sure there was a newer issue (about 1 year old) with exactly this, but failed optioanl extension points have never been attempted to be reloaded.

          James Nord added a comment - danielbeck no... I was sure there was a newer issue (about 1 year old) with exactly this, but failed optioanl extension points have never been attempted to be reloaded.

          James Nord added a comment -

          Not just a UX issue as this can have bad consequences.

          For example when a plugin is performing some form of "veto" about an action (if some properety is set on a job from the optioanl plugin) can lead to the veto which is implemented in the @extension(optional=true) not being called as it is not active, causing the action which should now be blocked from being able to happen which can have some bad consequences in the Jenkins instance.

          James Nord added a comment - Not just a UX issue as this can have bad consequences. For example when a plugin is performing some form of "veto" about an action (if some properety is set on a job from the optioanl plugin) can lead to the veto which is implemented in the @extension(optional=true) not being called as it is not active, causing the action which should now be blocked from being able to happen which can have some bad consequences in the Jenkins instance.

          James Nord added a comment -

          I think this can now be resolved as a duplicate of JENKINS-50336

          James Nord added a comment - I think this can now be resolved as a duplicate of JENKINS-50336

          Jesse Glick added a comment -

          Or JENKINS-50336? See JENKINS-19508 for general advice.

          Jesse Glick added a comment - Or JENKINS-50336 ? See JENKINS-19508 for general advice.

            Unassigned Unassigned
            recampbell Ryan Campbell
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: