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

Illegal base64 character in FileLogStorage$1.writeHtmlTo(FileLogStorage.java:203)

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Critical
    • Resolution: Unresolved
    • Labels:
      None
    • Environment:
      workflow-api-plugin 2.36

      Jenkins 2.222.3, workflow-api-plugin 2.40, splunk-devops 1.9.3, splunk-devops-extend 1.9.3
    • Similar Issues:

      Description

      sporadic console error

      java.lang.IllegalArgumentException: Illegal base64 character 5b
      	at java.util.Base64$Decoder.decode0(Base64.java:714)
      	at java.util.Base64$Decoder.decode(Base64.java:526)
      	at hudson.util.UnbufferedBase64InputStream.read(UnbufferedBase64InputStream.java:41)
      	at hudson.util.UnbufferedBase64InputStream.read(UnbufferedBase64InputStream.java:53)
      	at java.io.DataInputStream.readFully(DataInputStream.java:195)
      	at java.io.DataInputStream.readFully(DataInputStream.java:169)
      	at hudson.console.ConsoleNote.readFrom(ConsoleNote.java:248)
      	at hudson.console.ConsoleAnnotationOutputStream.eol(ConsoleAnnotationOutputStream.java:111)
      	at hudson.console.LineTransformationOutputStream.eol(LineTransformationOutputStream.java:60)
      	at hudson.console.LineTransformationOutputStream.write(LineTransformationOutputStream.java:56)
      	at java.io.FilterOutputStream.write(FilterOutputStream.java:77)
      	at org.jenkinsci.plugins.workflow.log.FileLogStorage$1$1.write(FileLogStorage.java:238)
      	at java.io.FilterOutputStream.write(FilterOutputStream.java:125)
      	at org.apache.commons.io.output.ProxyOutputStream.write(ProxyOutputStream.java:89)
      	at org.kohsuke.stapler.framework.io.LargeText$HeadMark.moveTo(LargeText.java:314)
      	at org.kohsuke.stapler.framework.io.LargeText.writeLogTo(LargeText.java:229)
      	at hudson.console.AnnotatedLargeText.writeRawLogTo(AnnotatedLargeText.java:168)
      	at org.jenkinsci.plugins.workflow.log.FileLogStorage$1.writeHtmlTo(FileLogStorage.java:203)
      	at hudson.console.AnnotatedLargeText.writeLogTo(AnnotatedLargeText.java:147)
      	at org.kohsuke.stapler.framework.io.LargeText.doProgressText(LargeText.java:264)
      	at hudson.console.AnnotatedLargeText.doProgressiveHtml(AnnotatedLargeText.java:95)
      

        Attachments

          Issue Links

            Activity

            Hide
            mikeryan_tan Mike Ryan added a comment -

            Just a heads up: the act of viewing a corrupt log file produced by this bug results in Jenkins leaking a file descriptor: JENKINS-62985

            Show
            mikeryan_tan Mike Ryan added a comment - Just a heads up: the act of viewing a corrupt log file produced by this bug results in Jenkins leaking a file descriptor: JENKINS-62985
            Hide
            jglick Jesse Glick added a comment -

            Have not taken the time yet to reproduce and analyze the situation in the debugger, but

            ignore the bad line in workflow-api

            AFAICT this aspect of the bug is in Jenkins core: malformed Base64 results in an IllegalArgumentException, rather than being suppressed quietly in ConsoleAnnotationOutputStream due to a null return value or IOException from ConsoleNote.readFrom. That would be a bug in UnbufferedBase64InputStream and/or ConsoleNote.

            The deeper cause is of course that the annotations are mangled to begin with, which as previously mentioned might have a similar root cause as previously fixed synchronization bugs.

            Show
            jglick Jesse Glick added a comment - Have not taken the time yet to reproduce and analyze the situation in the debugger, but ignore the bad line in workflow-api AFAICT this aspect of the bug is in Jenkins core: malformed Base64 results in an IllegalArgumentException , rather than being suppressed quietly in ConsoleAnnotationOutputStream due to a null return value or IOException from ConsoleNote.readFrom . That would be a bug in UnbufferedBase64InputStream and/or ConsoleNote . The deeper cause is of course that the annotations are mangled to begin with, which as previously mentioned might have a similar root cause as previously fixed synchronization bugs.
            Hide
            fengxx Ted Xiao added a comment -

            Mike Ryan splunk JVM issue will be tracked in JENKINS-62663

            Show
            fengxx Ted Xiao added a comment - Mike Ryan splunk JVM issue will be tracked in JENKINS-62663
            Hide
            fengxx Ted Xiao added a comment -

            Agrees that ansicolor/timestamps may have bugs and should be fixed.
            What I observed is that workflow job tolerated the issue before, e.g. workflow-api 2.34 + workflow-job 2.25 + ansicolor 0.5.0 works fine (at least /console page is fine), but it throws error on workflow-api 2.39 + workflow-job 2.37 + ansicolor 0.5.0. Hope it is not too much to ask if we catch error and ignore the bad line in workflow-api

            Show
            fengxx Ted Xiao added a comment - Agrees that ansicolor/timestamps may have bugs and should be fixed. What I observed is that workflow job tolerated the issue before, e.g. workflow-api 2.34 + workflow-job 2.25 + ansicolor 0.5.0 works fine (at least /console page is fine), but it throws error on workflow-api 2.39 + workflow-job 2.37 + ansicolor 0.5.0. Hope it is not too much to ask if we catch error and ignore the bad line in workflow-api
            Hide
            jglick Jesse Glick added a comment -

            the reproduce step (trigger job config) doesn't require splunk plugin installed

            Understood, but this is not obviously the same issue—could be a bug in Pipeline infrastructure, with echo, with ansicolor, with timestamps, etc.

            Show
            jglick Jesse Glick added a comment - the reproduce step (trigger job config) doesn't require splunk plugin installed Understood, but this is not obviously the same issue—could be a bug in Pipeline infrastructure, with echo , with ansicolor , with timestamps , etc.

              People

              • Assignee:
                Unassigned
                Reporter:
                fengxx Ted Xiao
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated: