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

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

    XMLWordPrintable

    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
            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
            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 -

            The visible symptom (IAE) should have been corrected by https://github.com/jenkinsci/jenkins/pull/4636 in 2.231.

            Show
            jglick Jesse Glick added a comment - The visible symptom (IAE) should have been corrected by https://github.com/jenkinsci/jenkins/pull/4636 in 2.231.
            Hide
            jglick Jesse Glick added a comment -

            …and may have been introduced by https://github.com/jenkinsci/jenkins/pull/4169 in 2.194.

            Show
            jglick Jesse Glick added a comment - …and may have been introduced by https://github.com/jenkinsci/jenkins/pull/4169 in 2.194.
            Hide
            jglick Jesse Glick added a comment -
            Show
            jglick Jesse Glick added a comment - …or by https://github.com/jenkinsci/jenkins/pull/2958 in 2.73.

              People

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

                Dates

                Created:
                Updated: