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

xUnit NoClassDefFoundError when converting CTest output on Windows slave

    XMLWordPrintable

    Details

    • Similar Issues:

      Description

      We recently converted our Windows slaves from using JNLP service to being logged in via ssh. At that time, several of our CTest-running jobs started failing with the stack trace attached. Note the reference to "/var/lib/jenkins/userContent/xunit/CTest" in the output - that path clearly doesn't exist on our Windows slaves. I don't know that that is the cause of the problem, of course, but it seems potentially relevant. Perhaps the xUnit plugin is somehow assuming that the remote side is Unix since it is logged into via ssh?

      [xUnit] [INFO] - Starting to record.
      [xUnit] [INFO] - Processing CTest-Version N/A (default)
      [xUnit] [INFO] - [CTest-Version N/A (default)] - 1 test report file(s) were found with the pattern 'build/memcached/Testing/**/Test.xml' relative to 'C:\Jenkins\workspace\memcached-gerrit-master\label_exp\watson-windows' for the testing framework 'CTest-Version N/A (default)'.
      [xUnit] [INFO] - Converting 'C:\Jenkins\workspace\memcached-gerrit-master\label_exp\watson-windows\build\memcached\Testing\20160112-0155\Test.xml' .
      [xUnit] [ERROR] - Conversion error remote file operation failed: /var/lib/jenkins/userContent/xunit/CTest at hudson.remoting.Channel@b07fd3:channel
      ERROR: Publisher org.jenkinsci.plugins.xunit.XUnitPublisher aborted due to exception
      java.io.IOException: remote file operation failed: C:\Jenkins\workspace\memcached-gerrit-master\label_exp\watson-windows at hudson.remoting.Channel@34a40002:watson-windows-01
      at hudson.FilePath.act(FilePath.java:910)
      at hudson.FilePath.act(FilePath.java:887)
      at org.jenkinsci.plugins.xunit.XUnitProcessor.performTests(XUnitProcessor.java:138)
      at org.jenkinsci.plugins.xunit.XUnitProcessor.performXUnit(XUnitProcessor.java:81)
      at org.jenkinsci.plugins.xunit.XUnitPublisher.perform(XUnitPublisher.java:112)
      at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
      at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
      at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:776)
      at hudson.model.Build$BuildExecution.post2(Build.java:183)
      at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:725)
      at hudson.model.Run.execute(Run.java:1701)
      at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
      at hudson.model.ResourceController.execute(ResourceController.java:88)
      at hudson.model.Executor.run(Executor.java:231)
      Caused by: hudson.util.IOException2: There are some problems during the conversion into JUnit reports:
      at org.jenkinsci.plugins.xunit.service.XUnitTransformer.invoke(XUnitTransformer.java:181)
      at org.jenkinsci.plugins.xunit.service.XUnitTransformer.invoke(XUnitTransformer.java:42)
      at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2461)
      at hudson.remoting.UserRequest.perform(UserRequest.java:118)
      at hudson.remoting.UserRequest.perform(UserRequest.java:48)
      at hudson.remoting.Request$2.run(Request.java:328)
      at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
      at java.util.concurrent.FutureTask.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      Caused by: org.jenkinsci.plugins.xunit.exception.XUnitException: Conversion error remote file operation failed: /var/lib/jenkins/userContent/xunit/CTest at hudson.remoting.Channel@b07fd3:channel
      at org.jenkinsci.plugins.xunit.service.XUnitConversionService.convert(XUnitConversionService.java:91)
      at org.jenkinsci.plugins.xunit.service.XUnitTransformer.invoke(XUnitTransformer.java:144)
      ... 10 more
      Caused by: java.io.IOException: remote file operation failed: /var/lib/jenkins/userContent/xunit/CTest at hudson.remoting.Channel@b07fd3:channel
      at hudson.FilePath.act(FilePath.java:910)
      at hudson.FilePath.act(FilePath.java:887)
      at hudson.FilePath.exists(FilePath.java:1319)
      at org.jenkinsci.plugins.xunit.service.XUnitConversionService.convertInputMetricXSL(XUnitConversionService.java:106)
      at org.jenkinsci.plugins.xunit.service.XUnitConversionService.convert(XUnitConversionService.java:80)
      ... 11 more
      Caused by: java.io.IOException: Remote call on channel failed
      at hudson.remoting.Channel.call(Channel.java:731)
      at hudson.FilePath.act(FilePath.java:903)
      ... 15 more
      Caused by: java.lang.NoClassDefFoundError: hudson/remoting/RemoteClassLoader$RemoteIClassLoader
      at hudson.remoting.RemoteClassLoader.export(RemoteClassLoader.java:656)
      at hudson.remoting.UserRequest.<init>(UserRequest.java:69)
      at hudson.remoting.Channel.call(Channel.java:721)
      ... 16 more

        Attachments

          Issue Links

            Activity

            Hide
            ceej Chris Hillery added a comment -

            Our slaves are configured as "Launch slave agents on Unix machines via SSH", but Jenkins itself at least recognizes that it is a Windows slave in the connect log:

            <===[JENKINS REMOTING CAPACITY]===>channel started
            Slave.jar version: 2.33
            This is a Windows slave
            Slave successfully connected and online

            Again, I don't know that the /var path in the output is related to the stack trace, nor that the /var path is coming from thinking the slave is Unix; just offering observations.

            Show
            ceej Chris Hillery added a comment - Our slaves are configured as "Launch slave agents on Unix machines via SSH", but Jenkins itself at least recognizes that it is a Windows slave in the connect log: <=== [JENKINS REMOTING CAPACITY] ===>channel started Slave.jar version: 2.33 This is a Windows slave Slave successfully connected and online Again, I don't know that the /var path in the output is related to the stack trace, nor that the /var path is coming from thinking the slave is Unix; just offering observations.
            Hide
            ceej Chris Hillery added a comment -

            FYI, I found an almost identical stack trace here:

            https://issues.jenkins-ci.org/browse/JENKINS-11570

            However that ticket was resolved as being fixed in xUnit plugin 1.42 with no further information.

            Show
            ceej Chris Hillery added a comment - FYI, I found an almost identical stack trace here: https://issues.jenkins-ci.org/browse/JENKINS-11570 However that ticket was resolved as being fixed in xUnit plugin 1.42 with no further information.
            Hide
            oleg_nenashev Oleg Nenashev added a comment -

            Please reopen if it happens on newest Remoting versions (3.0+)
            Classloading engine has been seriously reworked

            Show
            oleg_nenashev Oleg Nenashev added a comment - Please reopen if it happens on newest Remoting versions (3.0+) Classloading engine has been seriously reworked

              People

              • Assignee:
                Unassigned
                Reporter:
                ceej Chris Hillery
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: