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

Do not duplicate callsite stacktrace FilePath#act

XMLWordPrintable

    • Icon: Improvement Improvement
    • Resolution: Fixed
    • Icon: Minor Minor
    • core

      After JENKINS-46140, the exception is reasonably presented but the logic appears duplicated by FilePath#act generating still someshat interesting stacktraces:

      java.io.IOException: remote file operation failed: /foo/bar at hudson.remoting.Channel@19438528:rhel7-medium-522: java.io.IOException: Remote call on rhel7-medium-522 failed
      	at hudson.FilePath.act(FilePath.java:993)
      	at hudson.FilePath.act(FilePath.java:975)
      	at hudson.tasks.junit.JUnitParser.parseResult(JUnitParser.java:114)
      	at hudson.tasks.junit.JUnitResultArchiver.parse(JUnitResultArchiver.java:136)
      	at hudson.tasks.junit.JUnitResultArchiver.parseAndAttach(JUnitResultArchiver.java:166)
      	at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:153)
      	at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:81)
      	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
      	at hudson.model.Build$BuildExecution.post2(Build.java:186)
      	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
      	at hudson.model.Run.execute(Run.java:1749)
      	at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
      	at hudson.model.ResourceController.execute(ResourceController.java:97)
      	at hudson.model.Executor.run(Executor.java:429)
      Caused by: java.io.IOException: Remote call on rhel7-medium-522 failed
      	at hudson.remoting.Channel.call(Channel.java:916)
      	at hudson.FilePath.act(FilePath.java:986)
      	... 15 more
      Caused by: java.lang.NoClassDefFoundError: Could not initialize class jenkins.model.Jenkins
      	at hudson.ExtensionList.lookup(ExtensionList.java:418)
      	at hudson.tasks.junit.TestNameTransformer.all(TestNameTransformer.java:40)
      	at hudson.tasks.junit.TestNameTransformer.getTransformedName(TestNameTransformer.java:33)
      	at hudson.tasks.junit.CaseResult.getTransformedTestName(CaseResult.java:270)
      	at hudson.tasks.junit.SuiteResult.casesByName(SuiteResult.java:134)
      	at hudson.tasks.junit.SuiteResult.addCase(SuiteResult.java:297)
      	at hudson.tasks.junit.SuiteResult.<init>(SuiteResult.java:270)
      	at hudson.tasks.junit.SuiteResult.parseSuite(SuiteResult.java:209)
      	at hudson.tasks.junit.SuiteResult.parse(SuiteResult.java:181)
      	at hudson.tasks.junit.TestResult.parse(TestResult.java:348)
      	at hudson.tasks.junit.TestResult.parsePossiblyEmpty(TestResult.java:281)
      	at hudson.tasks.junit.TestResult.parse(TestResult.java:206)
      	at hudson.tasks.junit.TestResult.parse(TestResult.java:178)
      	at hudson.tasks.junit.TestResult.<init>(TestResult.java:143)
      	at hudson.tasks.junit.JUnitParser$ParseResultCallable.invoke(JUnitParser.java:146)
      	at hudson.tasks.junit.JUnitParser$ParseResultCallable.invoke(JUnitParser.java:118)
      	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2760)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:207)
      	at hudson.remoting.UserRequest.perform(UserRequest.java:53)
      	at hudson.remoting.Request$2.run(Request.java:358)
      	at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      	at java.lang.Thread.run(Thread.java:748)
      	Suppressed: hudson.remoting.Channel$CallSiteStackTrace: Remote call to rhel7-medium-522
      		at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1693)
      		at hudson.remoting.UserResponse.retrieve(UserRequest.java:310)
      		at hudson.remoting.Channel.call(Channel.java:908)
      		at hudson.FilePath.act(FilePath.java:986)
      		at hudson.FilePath.act(FilePath.java:975)
      		at hudson.tasks.junit.JUnitParser.parseResult(JUnitParser.java:114)
      		at hudson.tasks.junit.JUnitResultArchiver.parse(JUnitResultArchiver.java:136)
      		at hudson.tasks.junit.JUnitResultArchiver.parseAndAttach(JUnitResultArchiver.java:166)
      		at hudson.tasks.junit.JUnitResultArchiver.perform(JUnitResultArchiver.java:153)
      		at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:81)
      		at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
      		at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:744)
      		at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:690)
      		at hudson.model.Build$BuildExecution.post2(Build.java:186)
      		at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:635)
      		at hudson.model.Run.execute(Run.java:1749)
      		at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
      		at hudson.model.ResourceController.execute(ResourceController.java:97)
      		at hudson.model.Executor.run(Executor.java:429)
      

      The topmost exception is a) no longer needed as it duplicated the suppressed caller stacktrace and b) mixes the stacktraces for both sides together which is something JENKINS-46140 was here to prevent.

            olivergondza Oliver Gondža
            olivergondza Oliver Gondža
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: