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

Issue while reading Jenkins.class bytecode level

    • 83.vf59361a_44b_b_5

      I have the following cal stack in my error log. The jenkins process has high cpu usage due to this error. 

       

      Call stack

      2022-02-18 13:03:10.085+0000 [id=269574]    SEVERE  h.p.v.JVMVersionComparator$MasterBytecodeMajorVersionNumberGetter#get: Issue while reading Jenkins.class bytecode 
      leveljava.io.FileNotFoundException: C:\Program%20Files%20(x86)\Jenkins\war\WEB-INF\lib\jenkins-core-2.319.3.jar (The system cannot find the path specified)
          at java.util.zip.ZipFile.open(Native Method)    at java.util.zip.ZipFile.<init>(Unknown Source)    at java.util.zip.ZipFile.<init>(Unknown Source)
          at java.util.jar.JarFile.<init>(Unknown Source)    at java.util.jar.JarFile.<init>(Unknown Source) 
          at hudson.plugin.versioncolumn.JVMVersionComparator$MasterBytecodeMajorVersionNumberGetter.get(JVMVersionComparator.java:140)
          at hudson.plugin.versioncolumn.JVMVersionComparator.getMasterBytecodeMajorVersionNumber(JVMVersionComparator.java:89)
          at hudson.plugin.versioncolumn.JVMVersionComparator.isAgentRuntimeCompatibleWithJenkinsBytecodeLevel(JVMVersionComparator.java:93)
          at hudson.plugin.versioncolumn.JVMVersionComparator.<init>(JVMVersionComparator.java:64)
          at hudson.plugin.versioncolumn.JVMVersionComparator.<init>(JVMVersionComparator.java:57)
          at hudson.plugin.versioncolumn.JVMVersionMonitor.data(JVMVersionMonitor.java:75) 
          at hudson.model.Computer.getMonitorData(Computer.java:1145) 
          at org.kohsuke.stapler.export.MethodProperty.getValue(MethodProperty.java:72)
          at org.kohsuke.stapler.export.ExportInterceptor$1.getValue(ExportInterceptor.java:46)
          at org.kohsuke.stapler.export.Property.writeTo(Property.java:135)
          at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223)
          at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:219)
          at org.kohsuke.stapler.export.Property.writeValue(Property.java:302)
          at org.kohsuke.stapler.export.Property.writeBuffered(Property.java:174)
          at org.kohsuke.stapler.export.Property.writeValue(Property.java:218)
          at org.kohsuke.stapler.export.Property.writeValue(Property.java:168) 
         at org.kohsuke.stapler.export.Property.writeTo(Property.java:153) 
         at org.kohsuke.stapler.export.Model.writeNestedObjectTo(Model.java:223) 
         at org.kohsuke.stapler.export.Model.writeTo(Model.java:194) 
         at org.kohsuke.stapler.ResponseImpl.writeOne(ResponseImpl.java:294)
          at org.kohsuke.stapler.ResponseImpl.serveExposedBean(ResponseImpl.java:285) 
         at org.kohsuke.stapler.ResponseImpl.serveExposedBean(ResponseImpl.java:241)
          at hudson.model.Api.doJson(Api.java:229)
          at java.lang.invoke.MethodHandle.invokeWithArguments(Unknown Source)
          at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:393) 
         at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:405)
          at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:208)  
        at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:141)  
        at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:536)
          at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) 
         at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898) 
         at org.kohsuke.stapler.MetaClass$2.doDispatch(MetaClass.java:220) 
         at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
          at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898) 
         at org.kohsuke.stapler.MetaClass$2.doDispatch(MetaClass.java:220) 
         at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) 
         at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:766) 
         at org.kohsuke.stapler.Stapler.invoke(Stapler.java:898)
          at org.kohsuke.stapler.Stapler.invoke(Stapler.java:694)
          at org.kohsuke.stapler.Stapler.service(Stapler.java:240) 
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
         at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)  
        at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1626) 
         at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:156) 
         at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:248) 
         at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:153)  
        at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)  
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:153)  
        at jenkins.security.ResourceDomainFilter.doFilter(ResourceDomainFilter.java:80) 
         at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:153)  
        at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:60)
          at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:153) 
         at org.marvelution.jji.security.SyncTokenAuthenticationFilter.doFilter(SyncTokenAuthenticationFilter.java:124)  
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:153)  
        at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134) 
         at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:153)  
        at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:64)  
        at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:153) 
         at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:159)  
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) 
         at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)  
        at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:159)  
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193) 
         at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)  
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:92)  
        at jenkins.security.AcegiSecurityExceptionFilter.doFilter(AcegiSecurityExceptionFilter.java:52) 
         at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)  
        at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:53) 
         at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)  
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)
          at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)  
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)   
       at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105) 
         at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)   
       at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:101) 
         at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:92) 
         at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)  
        at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:218) 
         at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)  
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)  
        at jenkins.security.BasicHeaderProcessor.success(BasicHeaderProcessor.java:139)  
        at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:86)  
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)  
        at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)   
       at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80) 
         at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:62)  
        at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:97)  
        at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:109)  
        at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171) 
         at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)  
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)  
        at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:51)   
       at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)  
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)  
        at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:85) 
         at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)   
       at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) 
         at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) 
         at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)  
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601) 
         at jenkins.security.SuspiciousRequestFilter.doFilter(SuspiciousRequestFilter.java:39)  
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)  
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)  
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)  
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)  
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578) 
         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)  
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)  
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)  
        at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) 
         at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)  
        at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)  
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)  
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594) 
         at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)  
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349) 
         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)  
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) 
         at org.eclipse.jetty.server.Server.handle(Server.java:516)   
       at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:388)  
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:633)    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:380) 
         at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)   
       at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)  
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)   
       at org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555)  
        at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410)   
       at org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164) 
         at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)   
       at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)   
       at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)  
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)  
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)  
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)  
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:386)  
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)  
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)   
       at java.lang.Thread.run(Unknown Source)
      

          [JENKINS-67842] Issue while reading Jenkins.class bytecode level

          This looks like a bug in the Versions Node Monitors plugin. In the MasterBytecodeMajorVersionNumberGetter.get() method, URL.getFile() returns a path in which spaces have been encoded as %20, but JarFile(String name) does not expect that encoding.

          Kalle Niemitalo added a comment - This looks like a bug in the Versions Node Monitors plugin. In the MasterBytecodeMajorVersionNumberGetter.get() method , URL.getFile() returns a path in which spaces have been encoded as %20, but JarFile(String name) does not expect that encoding.

          Assigned to the default assignee of the versioncolumn-plugin component.

          Kalle Niemitalo added a comment - Assigned to the default assignee of the versioncolumn-plugin component.

          It seems that, if MasterBytecodeMajorVersionNumberGetter.get() succeeds in reading "jenkins/model/Jenkins.class" from the JAR file and parses int javaMajor from there, it then logs the value but discards it and proceeds to "Falling back to using Jenkins.getVersion to infer bytecode level". So the whole JAR-reading part could be deleted because it won't affect the return value anyway.

          mario_b, until the bug with the path URL encoding is fixed, I think you can avoid it by uninstalling the Versions Node Monitors plugin, or by moving the Jenkins controller to a directory whose path does not contain spaces or other characters that would be encoded in URLs.

          Kalle Niemitalo added a comment - It seems that, if MasterBytecodeMajorVersionNumberGetter.get() succeeds in reading "jenkins/model/Jenkins.class" from the JAR file and parses int javaMajor from there, it then logs the value but discards it and proceeds to "Falling back to using Jenkins.getVersion to infer bytecode level". So the whole JAR-reading part could be deleted because it won't affect the return value anyway. mario_b , until the bug with the path URL encoding is fixed, I think you can avoid it by uninstalling the Versions Node Monitors plugin, or by moving the Jenkins controller to a directory whose path does not contain spaces or other characters that would be encoded in URLs.

          It might be possible to use Jenkins.class.getResourceAsStream("Jenkins.class") instead of explicitly opening the JAR file.

          Kalle Niemitalo added a comment - It might be possible to use Jenkins.class.getResourceAsStream("Jenkins.class") instead of explicitly opening the JAR file.

          kon Thank you very much for your help.

          Mario Baumgartner added a comment - kon  Thank you very much for your help.

            batmat Baptiste Mathus
            mario_b Mario Baumgartner
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: