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

IndexOutOfBoundsException at hudson.MarkupText.rangeCheck(MarkupText.java:276)

    XMLWordPrintable

Details

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

    Description

      Getting the following exception while doing a console tail:

      A problem occurred while processing the request.
      Please check our bug tracker to see if a similar problem has already been reported.
      If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem.
      If you think this is a new issue, please file a new issue.
      When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins.
      The users list might be also useful in understanding what has happened.

      Stack trace

      javax.servlet.ServletException: java.lang.IndexOutOfBoundsException
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:778)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:210)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
      at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)
      at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:89)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:99)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
      at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
      at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
      at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
      at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
      at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
      at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
      at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
      at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
      at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
      at org.eclipse.jetty.server.Server.handle(Server.java:370)
      at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
      at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
      at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
      at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
      at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
      at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.IndexOutOfBoundsException
      at hudson.MarkupText.rangeCheck(MarkupText.java:276)
      at hudson.MarkupText.addMarkup(MarkupText.java:258)
      at hudson.tasks._maven.Maven3MojoNote.annotate(Maven3MojoNote.java:56)
      at hudson.console.ConsoleAnnotationOutputStream$1.annotate(ConsoleAnnotationOutputStream.java:115)
      at hudson.console.ConsoleAnnotator$1Aggregator.annotate(ConsoleAnnotator.java:111)
      at hudson.console.ConsoleAnnotationOutputStream.eol(ConsoleAnnotationOutputStream.java:145)
      at hudson.console.LineTransformationOutputStream.eol(LineTransformationOutputStream.java:60)
      at hudson.console.LineTransformationOutputStream.write(LineTransformationOutputStream.java:56)
      at hudson.console.LineTransformationOutputStream.write(LineTransformationOutputStream.java:74)
      at org.apache.commons.io.output.ProxyOutputStream.write(ProxyOutputStream.java:90)
      at org.kohsuke.stapler.framework.io.LargeText$HeadMark.moveTo(LargeText.java:312)
      at org.kohsuke.stapler.framework.io.LargeText.writeLogTo(LargeText.java:227)
      at hudson.console.AnnotatedLargeText.writeHtmlTo(AnnotatedLargeText.java:156)
      at hudson.console.AnnotatedLargeText.writeLogTo(AnnotatedLargeText.java:143)
      at org.kohsuke.stapler.framework.io.LargeText.doProgressText(LargeText.java:262)
      at hudson.console.AnnotatedLargeText.doProgressiveHtml(AnnotatedLargeText.java:91)
      at sun.reflect.GeneratedMethodAccessor126.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:606)
      at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
      at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
      at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
      at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
      ... 55 more

      Happens when building the james-mailet module from trunk.

      Attachments

        Issue Links

          Activity

            marc321 Mr Cinquero created issue -
            kdolan Karen Dolan added a comment - - edited

            I got exact same signature stack trace originating with IndexOutOfBoundsException in the rangeCheck.
            I'm using Jenkins ver. 1.568. It happened during a maven build that was trying to run grunt on a build server that probably doesn't have grunt installed.
            The Jenkins UI console only showed the successful project module builds, and then showed the stack trace.
            But, the error email showed the mvn build error: "[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:0.0.15:grunt (grunt build.release) on ..."

            [FOLLOWUP] after installing grunt on the build server, the project compiled, and I have not seen this stack trace since.

            kdolan Karen Dolan added a comment - - edited I got exact same signature stack trace originating with IndexOutOfBoundsException in the rangeCheck. I'm using Jenkins ver. 1.568. It happened during a maven build that was trying to run grunt on a build server that probably doesn't have grunt installed. The Jenkins UI console only showed the successful project module builds, and then showed the stack trace. But, the error email showed the mvn build error: " [ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:0.0.15:grunt (grunt build.release) on ..." [FOLLOWUP] after installing grunt on the build server, the project compiled, and I have not seen this stack trace since.
            marc321 Mr Cinquero added a comment - - edited

            Re-appeared at 1.613, no problems when looking at complete console output (html formatted) afterwards, just a problem with tail.

            marc321 Mr Cinquero added a comment - - edited Re-appeared at 1.613, no problems when looking at complete console output (html formatted) afterwards, just a problem with tail.
            danielbeck Daniel Beck added a comment -

            How can this be reproduced?

            danielbeck Daniel Beck added a comment - How can this be reproduced?

            I'm seeing this as well, running Jenkins 1.617

            brianjenkins Brian Villanueva added a comment - I'm seeing this as well, running Jenkins 1.617
            danielbeck Daniel Beck added a comment -

            Is this about the Console Tail Plugin, or does it happen when viewing a job's console while building?

            danielbeck Daniel Beck added a comment - Is this about the Console Tail Plugin, or does it happen when viewing a job's console while building?
            danielbeck Daniel Beck added a comment - Could this comment apply? https://issues.jenkins-ci.org/browse/JENKINS-29179?focusedCommentId=231379&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-231379
            danjee Daniel Jipa added a comment -

            I got this exeption when scrolling up to see the first lines of console output

            danjee Daniel Jipa added a comment - I got this exeption when scrolling up to see the first lines of console output
            marc321 Mr Cinquero added a comment - - edited

            I don't have console tail plugin installed, so yes, it's happening with the built-in build html tail follow.

            marc321 Mr Cinquero added a comment - - edited I don't have console tail plugin installed, so yes, it's happening with the built-in build html tail follow.
            marc321 Mr Cinquero added a comment - - edited

            hudson.tasks._maven.Maven3MojoNote.annotate():

                text.addMarkup(7,text.length(),"<b class=maven-mojo>","</b>");
            

            The "7" comes from the pattern defined inside the same class:

                public static Pattern PATTERN = Pattern.compile("\\[INFO\\] --- .+-plugin:[^:]+:[^ ]+ \\(.+\\) @ .+ ---");
            
            

            However, I see nothing that ensures that the mentioned method gets only called for Strings matching that pattern..... ?!

            marc321 Mr Cinquero added a comment - - edited hudson.tasks._maven.Maven3MojoNote.annotate(): text.addMarkup(7,text.length(), "<b class=maven-mojo>" , "</b>" ); The "7" comes from the pattern defined inside the same class: public static Pattern PATTERN = Pattern.compile( "\\[INFO\\] --- .+-plugin:[^:]+:[^ ]+ \\(.+\\) @ .+ ---" ); However, I see nothing that ensures that the mentioned method gets only called for Strings matching that pattern..... ?!
            danielbeck Daniel Beck added a comment -

            I see nothing that ensures that the mentioned method gets only called for Strings matching that pattern

            It's called in https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/tasks/_maven/MavenConsoleAnnotator.java#L64

            danielbeck Daniel Beck added a comment - I see nothing that ensures that the mentioned method gets only called for Strings matching that pattern It's called in https://github.com/jenkinsci/jenkins/blob/master/core/src/main/java/hudson/tasks/_maven/MavenConsoleAnnotator.java#L64
            marc321 Mr Cinquero added a comment - - edited

            Hokay, I traced down a log file producing that error and traced it further down to the exact line:

            [JENKINS] Recording test results[INFO] 
            ha:AAAAYB+LCAAAAAAAAP9b85aBtbiIQSmjNKU4P0+vJLE4u1gvPjexLDVPzxdEGvvmZ+X75ZekLlOVfvTjc8FPJgaGiiIGKaiG5Py84vycVD1nCA1SyAABjCCFBQCV27OjYAAAAA==
            [INFO] --- maven-source-plugin:2.3:jar-no-fork (attach-sources) @ android-aggregator ---
            

            Interestingly, I can't see the second line on my console. It only appeared after pasting it here. Every time I open that build's log in Jenkins, the exception gets logged to /var/log/jenkins.log. However, I don't get to see the exception in the frontend again ... that only seems to happen during live builds.

            marc321 Mr Cinquero added a comment - - edited Hokay, I traced down a log file producing that error and traced it further down to the exact line: [JENKINS] Recording test results[INFO] ha:AAAAYB+LCAAAAAAAAP9b85aBtbiIQSmjNKU4P0+vJLE4u1gvPjexLDVPzxdEGvvmZ+X75ZekLlOVfvTjc8FPJgaGiiIGKaiG5Py84vycVD1nCA1SyAABjCCFBQCV27OjYAAAAA== [INFO] --- maven-source-plugin:2.3:jar-no-fork (attach-sources) @ android-aggregator --- Interestingly, I can't see the second line on my console. It only appeared after pasting it here. Every time I open that build's log in Jenkins, the exception gets logged to /var/log/jenkins.log. However, I don't get to see the exception in the frontend again ... that only seems to happen during live builds.
            danielbeck Daniel Beck added a comment -

            This is the serialized form of console log annotators. Could you attach an affected build log to this issue as it is stored on disk? Feel free to only post an excerpt, but it should be complete, i.e. exhibit the problem when viewed in Jenkins.

            danielbeck Daniel Beck added a comment - This is the serialized form of console log annotators. Could you attach an affected build log to this issue as it is stored on disk? Feel free to only post an excerpt, but it should be complete, i.e. exhibit the problem when viewed in Jenkins.
            marc321 Mr Cinquero added a comment -

            build log file reproducing the exception when doing a "curl http://localhost:9087/job/android/8/consoleFull"

            marc321 Mr Cinquero added a comment - build log file reproducing the exception when doing a "curl http://localhost:9087/job/android/8/consoleFull "
            marc321 Mr Cinquero made changes -
            Field Original Value New Value
            Attachment log.txt [ 32041 ]

            We had same issue. Do you have any forecast or workaround ?
            Jenkins version: LTS 1.625.1

            rogeriocolferai Rogério Colferai added a comment - We had same issue. Do you have any forecast or workaround ? Jenkins version: LTS 1.625.1
            danielbeck Daniel Beck made changes -
            Component/s core [ 15593 ]
            Component/s console-tail-plugin [ 18144 ]
            danielbeck Daniel Beck added a comment -

            marc321 Thanks for the log file.

            danielbeck Daniel Beck added a comment - marc321 Thanks for the log file.
            danielbeck Daniel Beck made changes -
            Assignee Daniel Beck [ danielbeck ]
            rtyler R. Tyler Croy made changes -
            Workflow JNJira [ 156482 ] JNJira + In-Review [ 179296 ]
            ruckc Curtis Ruck added a comment -

            Getting this also on a new job, just straight building https://github.com/codice/ddf.git with a maven job and "clean install".

            ruckc Curtis Ruck added a comment - Getting this also on a new job, just straight building https://github.com/codice/ddf.git with a maven job and "clean install".
            oleg_nenashev Oleg Nenashev made changes -
            Link This issue is related to JENKINS-29179 [ JENKINS-29179 ]
            oleg_nenashev Oleg Nenashev made changes -
            Link This issue is related to JENKINS-18502 [ JENKINS-18502 ]
            jglick Jesse Glick made changes -
            Link This issue is duplicated by JENKINS-29179 [ JENKINS-29179 ]
            jglick Jesse Glick added a comment -

            Original stack trace shows a bug in Maven3MojoNote. There may be other similar yet distinct bugs reported in here.

            jglick Jesse Glick added a comment - Original stack trace shows a bug in Maven3MojoNote . There may be other similar yet distinct bugs reported in here.
            jglick Jesse Glick made changes -
            Link This issue is duplicated by JENKINS-24379 [ JENKINS-24379 ]
            spoon Spoon added a comment -

            Just had the same problem when running 2.96

            spoon Spoon added a comment - Just had the same problem when running 2.96
            dnusbaum Devin Nusbaum added a comment -

            I recently saw this error on an instance where the credentials-binding plugin was masking a password that occurred naturally in the logs because it was a common word. The log had a ModelHyperlinkNote whose annotated text shrunk after the masking, which caused the stored length to no longer match the actual length, resulting in the IOOBE.

            I don't know if we could reorder the link creation in relation to the credentials masking to prevent that error, but the workaround of choosing a better password worked well enough in my case. Does anyone else getting this error see a lot of **** in the logs of the failing build?

            dnusbaum Devin Nusbaum added a comment - I recently saw this error on an instance where the credentials-binding plugin was masking a password that occurred naturally in the logs because it was a common word. The log had a ModelHyperlinkNote whose annotated text shrunk after the masking, which caused the stored length to no longer match the actual length, resulting in the IOOBE. I don't know if we could reorder the link creation in relation to the credentials masking to prevent that error, but the workaround of choosing a better password worked well enough in my case. Does anyone else getting this error see a lot of **** in the logs of the failing build?
            dnusbaum Devin Nusbaum added a comment - - edited

            Another way I recent saw this issue was with a ModelHyperlinkNote where the model object's display name contained newlines. When the log was being annotated, only the text up to the first newline was considered, so the lengths did not match. I am going to file a change to ModelHyperlinkNote to replace newlines with spaces to prevent that class of errors.

            EDIT: I opened JENKINS-53016 for that issue since it has nothing to do with Maven3MojoNote.

            dnusbaum Devin Nusbaum added a comment - - edited Another way I recent saw this issue was with a ModelHyperlinkNote where the model object's display name contained newlines. When the log was being annotated, only the text up to the first newline was considered, so the lengths did not match. I am going to file a change to ModelHyperlinkNote to replace newlines with spaces to prevent that class of errors. EDIT: I opened JENKINS-53016 for that issue since it has nothing to do with Maven3MojoNote.
            dnusbaum Devin Nusbaum made changes -
            Remote Link This issue links to "jenkinsci/jenkins#3580 (Web Link)" [ 21313 ]
            dnusbaum Devin Nusbaum made changes -
            Link This issue relates to JENKINS-53016 [ JENKINS-53016 ]
            dnusbaum Devin Nusbaum made changes -
            Remote Link This issue links to "jenkinsci/jenkins#3580 (Web Link)" [ 21313 ]
            danielbeck Daniel Beck made changes -
            Assignee Daniel Beck [ danielbeck ]

            People

              Unassigned Unassigned
              marc321 Mr Cinquero
              Votes:
              9 Vote for this issue
              Watchers:
              13 Start watching this issue

              Dates

                Created:
                Updated: