Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Defending against past corrupt builds #651

Merged
merged 2 commits into from
Sep 26, 2024

Commits on Sep 26, 2024

  1. Defending against past corrupt builds

    I've seen builds failing in the wild during `junit` step execution with
    an exception like
    
    ```
    java.lang.NullPointerException: Cannot invoke "hudson.model.Run.getRootDir()" because "this.run" is null
    	at PluginClassLoader for junit//hudson.tasks.junit.TestResultAction.getDataFilePath(TestResultAction.java:154)
    	at PluginClassLoader for junit//hudson.tasks.junit.TestResultAction.loadCached(TestResultAction.java:317)
    	at PluginClassLoader for junit//hudson.tasks.junit.TestResultAction.load(TestResultAction.java:279)
    	at PluginClassLoader for junit//hudson.tasks.junit.TestResultAction.getResult(TestResultAction.java:166)
    	at PluginClassLoader for junit//hudson.tasks.junit.TestResultAction.getResult(TestResultAction.java:70)
    	at PluginClassLoader for junit//hudson.tasks.test.AbstractTestResultAction.findCorrespondingResult(AbstractTestResultAction.java:286)
    	at PluginClassLoader for junit//hudson.tasks.test.TestResult.getPreviousResult(TestResult.java:146)
    	at PluginClassLoader for junit//hudson.tasks.junit.TestResult.getPreviousResult(TestResult.java:467)
    	at PluginClassLoader for junit//hudson.tasks.junit.CaseResult.getPreviousResult(CaseResult.java:768)
    	at PluginClassLoader for junit//hudson.tasks.junit.CaseResult.recomputeFailedSinceIfNeeded(CaseResult.java:669)
    	at PluginClassLoader for junit//hudson.tasks.junit.CaseResult.freeze(CaseResult.java:950)
    	at PluginClassLoader for junit//hudson.tasks.junit.SuiteResult.freeze(SuiteResult.java:730)
    	at PluginClassLoader for junit//hudson.tasks.junit.TestResult.freeze(TestResult.java:1119)
    	at PluginClassLoader for junit//hudson.tasks.junit.TestResultAction.setResult(TestResultAction.java:125)
    	at PluginClassLoader for junit//hudson.tasks.junit.TestResultAction.<init>(TestResultAction.java:96)
    	at PluginClassLoader for junit//hudson.tasks.junit.JUnitResultArchiver.parseAndSummarize(JUnitResultArchiver.java:301)
    	at PluginClassLoader for junit//hudson.tasks.junit.pipeline.JUnitResultsStepExecution.run(JUnitResultsStepExecution.java:62)
    	at PluginClassLoader for junit//hudson.tasks.junit.pipeline.JUnitResultsStepExecution.run(JUnitResultsStepExecution.java:27)
    	at PluginClassLoader for workflow-step-api//org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution.lambda$start$0(SynchronousNonBlockingStepExecution.java:47)
    	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    	at java.base/java.lang.Thread.run(Thread.java:840)
    ```
    
    While the root cause for such corruption is still to be identified, the
    plugin should defend against that condition and ignore such a build.
    
    Similar to jenkinsci/parallel-test-executor-plugin#282
    Vlatombe committed Sep 26, 2024
    Configuration menu
    Copy the full SHA
    77801f9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    254298b View commit details
    Browse the repository at this point in the history