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

Job Config History plugin should not call User.current() during startup

    XMLWordPrintable

Details

    Description

      2.138.2 backported JEP-214/Uplink telemetry, and with it, an extension that calls save from its constructor.

      When Job Config History is installed, that results in the following warning being logged on the first startup during the save call:

      https://gist.github.com/daniel-beck/140e11878479d5c2eef882f54c4ed33d

      It's not obviously a bad idea to call save there (IMO), but there probably should be a check in JCH to not do elaborate processing during startup. Unsure.

      Attachments

        Issue Links

          Activity

            danielbeck Daniel Beck added a comment -

            I've recently observed the same problem with a number of plugins. It's always the same basic structure, during startup, a plugin saves a Saveable, and JCH calls PluginUtils.isUserExcluded (when Jenkins.getAuthentication might be good enough, unsure), resulting in a deadlock, or at least failure to initialize extensions.

            danielbeck Daniel Beck added a comment - I've recently observed the same problem with a number of plugins. It's always the same basic structure, during startup, a plugin saves a Saveable, and JCH calls PluginUtils.isUserExcluded (when Jenkins.getAuthentication might be good enough, unsure), resulting in a deadlock, or at least failure to initialize extensions.
            danielbeck Daniel Beck added a comment -

            Example stack trace excerpt:

            	at hudson.plugins.jobConfigHistory.PluginUtils.isUserExcluded(PluginUtils.java:121)
            	at hudson.plugins.jobConfigHistory.JobConfigHistorySaveableListener.onChange(JobConfigHistorySaveableListener.java:55)
            	at hudson.model.listeners.SaveableListener.fireOnChange(SaveableListener.java:81)
            	at hudson.model.Descriptor.save(Descriptor.java:874)
            	at hudson.plugins.openid.OpenIdLoginService$GlobalConfigurationImpl.setEnabled(OpenIdLoginService.java:234)
            	at hudson.plugins.openid.OpenIdLoginService$GlobalConfigurationImpl.<init>(OpenIdLoginService.java:217) 
            danielbeck Daniel Beck added a comment - Example stack trace excerpt: at hudson.plugins.jobConfigHistory.PluginUtils.isUserExcluded(PluginUtils.java:121) at hudson.plugins.jobConfigHistory.JobConfigHistorySaveableListener.onChange(JobConfigHistorySaveableListener.java:55) at hudson.model.listeners.SaveableListener.fireOnChange(SaveableListener.java:81) at hudson.model.Descriptor.save(Descriptor.java:874) at hudson.plugins.openid.OpenIdLoginService$GlobalConfigurationImpl.setEnabled(OpenIdLoginService.java:234) at hudson.plugins.openid.OpenIdLoginService$GlobalConfigurationImpl.<init>(OpenIdLoginService.java:217)

            People

              stefanbrausch Stefan Brausch
              danielbeck Daniel Beck
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: