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

0 stars 0 forks source link

[JENKINS-42852] JSONObject["administrativeMonitor"] is not a JSONArray. #3942

Closed timja closed 7 years ago

timja commented 7 years ago

Running on the latest versions of LTS and/or dev copy of Jenkins on a fresh install, I get the following stack trace when I try to disable the "Node marked offline due to health check" and/or "Too many scm polling threads" admin monitors:

Stack Trace
javax.servlet.ServletException: net.sf.json.JSONException: JSONObject["administrativeMonitor"] is not a JSONArray. at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876) 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 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:49) 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:142) 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: net.sf.json.JSONException: JSONObject["administrativeMonitor"] is not a JSONArray. at net.sf.json.JSONObject.getJSONArray(JSONObject.java:1986) at jenkins.management.AdministrativeMonitorsConfiguration.configure(AdministrativeMonitorsConfiguration.java:46) at jenkins.model.Jenkins.configureDescriptor(Jenkins.java:3636) at jenkins.model.Jenkins.doConfigSubmit(Jenkins.java:3599) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:335) at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:175) at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:108) at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:124) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746) ... 54 more

Originally reported by ganthore, imported from: JSONObject["administrativeMonitor"] is not a JSONArray.
  • assignee: sathiya_mit
  • status: Resolved
  • priority: Minor
  • resolution: Fixed
  • resolved: 2017-04-12T19:55:29+00:00
  • imported: 2022/01/10
timja commented 7 years ago

oleg_nenashev:

It is a pretty well known issue. In such case you get JSON object instead of the JSONArray.
CC danielbeck since he was working on this area recently

timja commented 7 years ago

ganthore:

oleg_nenashev ah okay. I didn't see anything for this specific case when I searched the DB, so I wanted to make sure ya'll were aware about it.

timja commented 7 years ago

oleg_nenashev:

ganthore I meant that the error pattern is well known. Regarding this case, it is a new bug IIRC. Have not seen similar reports at least

timja commented 7 years ago

sathiya_mit:

Here is the PR which fixes this.

https://github.com/jenkinsci/jenkins/pull/2828

timja commented 7 years ago

scm_issue_link:

Code changed in jenkins
User: Oleg Nenashev
Path:
core/src/main/java/jenkins/management/AdministrativeMonitorsConfiguration.java
http://jenkins-ci.org/commit/jenkins/77804c145134d93b3ac0bd64d3181a2e21538fb7
Log:
Merge pull request #2828 from sathiya-mit/master

JENKINS-42852 - Jenkins Configuration Save Option

Compare: https://github.com/jenkinsci/jenkins/compare/1ca9c880fd64...77804c145134

timja commented 7 years ago

danielbeck:

Fixed in 2.54.

timja commented 7 years ago

scm_issue_link:

Code changed in jenkins
User: Oleg Nenashev
Path:
core/src/main/java/jenkins/management/AdministrativeMonitorsConfiguration.java
http://jenkins-ci.org/commit/jenkins/ce7d2aec50bbf2a97dab256aee399e180754483e
Log:
Merge pull request #2828 from sathiya-mit/master

JENKINS-42852 - Jenkins Configuration Save Option
(cherry picked from commit 77804c145134d93b3ac0bd64d3181a2e21538fb7)

timja commented 6 years ago

scm_issue_link:

Code changed in jenkins
User: Wadeck Follonier
Path:
core/src/main/java/hudson/security/SecurityRealm.java
test/src/test/java/hudson/security/SecurityRealmTest.java
http://jenkins-ci.org/commit/jenkins/80d17f5a68739eafc27d5a3fd003b7eee4cfe8f3
Log:
JENKINS-43852 add caching options for captcha (#3126)

timja commented 6 years ago

scm_issue_link:

Code changed in jenkins
User: Wadeck Follonier
Path:
core/src/main/java/hudson/security/SecurityRealm.java
test/src/test/java/hudson/security/SecurityRealmTest.java
http://jenkins-ci.org/commit/jenkins/179ac8df0803375e4e600b7c44547419636d44fe
Log:
JENKINS-43852 add caching options for captcha (#3126)

(cherry picked from commit 80d17f5a68739eafc27d5a3fd003b7eee4cfe8f3)