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

Optional Extensions should be reloaded when dependencies are dynamically loaded

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • core
    • None

    Description

      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.

      Attachments

        Issue Links

          Activity

            danielbeck Daniel Beck added a comment -

            Was this resolved in JENKINS-19976?

            danielbeck Daniel Beck added a comment - Was this resolved in JENKINS-19976 ?
            teilo 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.

            teilo 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.
            teilo 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.

            teilo 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.
            teilo James Nord added a comment -

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

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

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

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

            People

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

              Dates

                Created:
                Updated: