timja / jenkins-gh-issues-poc-06-18

0 stars 0 forks source link

[JENKINS-42717] Error Saving configs after updating plugins #3929

Closed timja closed 7 years ago

timja commented 7 years ago

Hello, I updated bunch of plugins last week and restarted the Jenkins. But now i am observing the following error the moment i add new config under jenkins > manage Jenkins > Configure system.

 java.lang.reflect.InvocationTargetException
    at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:347)
    at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
    at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
    at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
    at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
    at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
    at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
    at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)
    at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:225)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
    at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
    at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
    at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
    at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:80)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
    at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
    at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
    at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
    at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
    at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
    at org.eclipse.jetty.server.Server.handle(Server.java:499)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
    at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NullPointerException
    at jenkins.model.Jenkins.setPrimaryView(Jenkins.java:1862)
    at hudson.views.GlobalDefaultViewConfiguration.configure(GlobalDefaultViewConfiguration.java:44)
    at jenkins.model.Jenkins.configureDescriptor(Jenkins.java:3650)
    at jenkins.model.Jenkins.doConfigSubmit(Jenkins.java:3613)
    at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
    at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)

Do someone know whats causing this ?


Originally reported by abansal, imported from: Error Saving configs after updating plugins
  • assignee: oleg_nenashev
  • status: Resolved
  • priority: Blocker
  • resolution: Fixed
  • resolved: 2017-04-24T08:19:27+00:00
  • imported: 2022/01/10
timja commented 7 years ago

abansal:

I am running 2.49 version of jenkins

timja commented 7 years ago

abansal:

jamesdumay, do you know anything ?

timja commented 7 years ago

oleg_nenashev:

It is a duplicate of JENKINS-42713.
I doubt it is related to BlueOcean

timja commented 7 years ago

oleg_nenashev:

Sorry, I messed up something. Reopened the issue

timja commented 7 years ago

jamesdumay:

This doesn't appear to be a Blue Ocean issue so I've assigned it to core. It would be good to get some more information here for the core team to diagnose.

timja commented 7 years ago

oleg_nenashev:

It may happen if and only if the following expression passes a null view: https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/views/GlobalDefaultViewConfiguration.java#L44 . I suspect it happens, because the primaryView field contains a non-existent view (e.g. if it was deleted). So likely it can be fixed in the ser config.

From Jenkins standpoint, the behavior should be made more robust of course

timja commented 7 years ago

oleg_nenashev:

Created https://github.com/jenkinsci/jenkins/pull/2815

timja commented 7 years ago

abansal:

any idea when this will be merged and released ?

timja commented 7 years ago

oleg_nenashev:

I hope to get it released in this weekly. Unfortunately I was heavily involved into some other activities, and I had no time to fix the automatic test for this logic

timja commented 7 years ago

oleg_nenashev:

As a workaround you can always specify a different primary view in the configuration

timja commented 7 years ago

scm_issue_link:

Code changed in jenkins
User: Oleg Nenashev
Path:
core/src/main/java/hudson/model/ViewGroupMixIn.java
core/src/main/java/hudson/views/GlobalDefaultViewConfiguration.java
core/src/main/java/jenkins/model/Jenkins.java
core/src/main/resources/hudson/views/Messages.properties
test/src/test/java/hudson/views/GlobalDefaultViewConfigurationTest.java
test/src/test/java/org/kohsuke/stapler/MockStaplerRequestBuilder.java
http://jenkins-ci.org/commit/jenkins/4074818b97d50b98b754f723842f03306a1ddaea
Log:
JENKINS-42717 - Prevent NPE when a non-existent Default View is specified in the global config (#2815)

timja commented 7 years ago

oleg_nenashev:

The fix has been released in 2.56

timja commented 7 years ago

scm_issue_link:

Code changed in jenkins
User: Oleg Nenashev
Path:
core/src/main/java/hudson/model/ViewGroupMixIn.java
core/src/main/java/hudson/views/GlobalDefaultViewConfiguration.java
core/src/main/java/jenkins/model/Jenkins.java
core/src/main/resources/hudson/views/Messages.properties
test/src/test/java/hudson/views/GlobalDefaultViewConfigurationTest.java
test/src/test/java/org/kohsuke/stapler/MockStaplerRequestBuilder.java
http://jenkins-ci.org/commit/jenkins/0e2cadf5ea0a37780718207fab1e077a32127162
Log:
JENKINS-42717 - Prevent NPE when a non-existent Default View is specified in the global config (#2815)

(cherry picked from commit 4074818b97d50b98b754f723842f03306a1ddaea)