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

One of files fails with SdkClientException: Couldn't initialize a SAX driver to create an XMLReader

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Component/s: s3-plugin
    • Labels:
      None
    • Environment:
      jenkins 2.19.4, S3 Publisher Plugin 0.10.11
    • Similar Issues:

      Description

      It is run from jenkinsfile

          step([$class: 'S3BucketPublisher',
                consoleLogLevel: 'INFO',
                dontWaitForConcurrentBuildCompletion: true,
                entries: [[
                                  bucket: 'mybucket',
                                  excludedFile: '',
                                  flatten: false,
                                  gzipFiles: true,
                                  keepForever: false,
                                  managedArtifacts: true,
                                  noUploadOnFailure: false,
                                  selectedRegion: 'eu-central-1',
                                  showDirectlyInBrowser: false,
                                  sourceFile: 'artifacts/**/*.*',
                                  storageClass: 'STANDARD',
                                  uploadFromSlave: false,
                                  useServerSideEncryption: false]],
                pluginFailureResultConstraint: 'FAILURE',
                profileName: 'jenkins',
                userMetadata: []])
      

      Some files are uploaded sucessfuly to s3 bucket, but then it keep failing on one of the files. with the following error

      Jenkins console output

      ERROR: Failed to upload files
      com.amazonaws.SdkClientException: Couldn't initialize a SAX driver to create an XMLReader
      at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.<init>(XmlResponsesSaxParser.java:113)
      at com.amazonaws.services.s3.model.transform.Unmarshallers$InitiateMultipartUploadResultUnmarshaller.unmarshall(Unmarshallers.java:237)
      at com.amazonaws.services.s3.model.transform.Unmarshallers$InitiateMultipartUploadResultUnmarshaller.unmarshall(Unmarshallers.java:234)
      at com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:62)
      at com.amazonaws.services.s3.internal.ResponseHeaderHandlerChain.handle(ResponseHeaderHandlerChain.java:44)
      at com.amazonaws.services.s3.internal.ResponseHeaderHandlerChain.handle(ResponseHeaderHandlerChain.java:30)
      at com.amazonaws.http.response.AwsResponseHandlerAdapter.handle(AwsResponseHandlerAdapter.java:70)
      at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleResponse(AmazonHttpClient.java:1444)
      at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1151)
      at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:964)
      at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:676)
      at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:650)
      at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:633)
      at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$300(AmazonHttpClient.java:601)
      at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:583)
      at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:447)
      at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4137)
      at com.amazonaws.services.s3.AmazonS3Client.initiateMultipartUpload(AmazonS3Client.java:2988)
      at com.amazonaws.services.s3.transfer.internal.UploadCallable.initiateMultipartUpload(UploadCallable.java:362)
      at com.amazonaws.services.s3.transfer.internal.UploadCallable.uploadInParts(UploadCallable.java:180)
      at com.amazonaws.services.s3.transfer.internal.UploadCallable.call(UploadCallable.java:123)
      at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:139)
      at com.amazonaws.services.s3.transfer.internal.UploadMonitor.call(UploadMonitor.java:47)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      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: org.xml.sax.SAXException: SAX2 driver class org.apache.xerces.parsers.SAXParser not found
      java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser
      at org.xml.sax.helpers.XMLReaderFactory.loadClass(XMLReaderFactory.java:230)
      at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReaderFactory.java:191)
      at com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.<init>(XmlResponsesSaxParser.java:111)
      ... 26 more
      Caused by: java.lang.ClassNotFoundException: org.apache.xerces.parsers.SAXParser
      at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:450)
      at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:403)
      at org.xml.sax.helpers.NewInstance.newInstance(NewInstance.java:82)
      at org.xml.sax.helpers.XMLReaderFactory.loadClass(XMLReaderFactory.java:228)
      ... 28 more

      Seems like the original exception is not known as it was hidden in the s3 client code as per this article

      The only thing that is different in the failing file is that its size is 75519KB. Other files are much smaller.

        Attachments

          Issue Links

            Activity

            Hide
            kampak1111 Kamil P added a comment -

            There is an interesting observation in JENKINS-19725 about the 16M size limit.

            Show
            kampak1111 Kamil P added a comment - There is an interesting observation in JENKINS-19725 about the 16M size limit.
            Hide
            afl_sjoerd Sjoerd van Gestel added a comment - - edited

            We experience this issue with files bigger than 14Mb, if you add xerces-2.9.0.jar to the s3 plugin lib folder it should be solved (/var/lib/jenkins/plugins/s3/WEB-INF/lib/)

            Show
            afl_sjoerd Sjoerd van Gestel added a comment - - edited We experience this issue with files bigger than 14Mb, if you add xerces-2.9.0.jar to the s3 plugin lib folder it should be solved (/var/lib/jenkins/plugins/s3/WEB-INF/lib/)
            Hide
            imorti Ian Mortimer added a comment -

            I have the xerces-2.9.0.jar in the /var/lib/jenkins/plugins/s3/WEB-INF/lib/ and I still get this error. Any update? 

            Show
            imorti Ian Mortimer added a comment - I have the xerces-2.9.0.jar in the /var/lib/jenkins/plugins/s3/WEB-INF/lib/ and I still get this error. Any update? 
            Hide
            ricko Richard Otter added a comment -

            I found that I needed to restart Jenkins to get the  xerces-2.9.0.jar workaround to function. 

            I am now uploading 400MB files.

            Show
            ricko Richard Otter added a comment - I found that I needed to restart Jenkins to get the  xerces-2.9.0.jar workaround to function.  I am now uploading 400MB files.

              People

              Assignee:
              jimilian Alexander A
              Reporter:
              kampak1111 Kamil P
              Votes:
              2 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated: