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

Do not duplicate callsite stacktrace FilePath#act

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

          [JENKINS-51082] Do not duplicate callsite stacktrace FilePath#act

          Code changed in jenkins
          User: Oliver Gondža
          Path:
          core/src/main/java/hudson/FilePath.java
          http://jenkins-ci.org/commit/jenkins/0e5fc86f4f724fe4740e8680dd3454dada717155
          Log:
          [FIX JENKINS-51082] Avoid attaching calling stacktrace as that is done by Channel already (#3417)

          *NOTE:* This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

          Functionality will be removed from GitHub.com on January 31st, 2019.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Oliver Gondža Path: core/src/main/java/hudson/FilePath.java http://jenkins-ci.org/commit/jenkins/0e5fc86f4f724fe4740e8680dd3454dada717155 Log: [FIX JENKINS-51082] Avoid attaching calling stacktrace as that is done by Channel already (#3417) * NOTE: * This service been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/ Functionality will be removed from GitHub.com on January 31st, 2019.

          Oleg Nenashev added a comment -

          Fixed in 2.126. Can be backported though it's an improvement

          Oleg Nenashev added a comment - Fixed in 2.126. Can be backported though it's an improvement

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

              Created:
              Updated:
              Resolved: