jenkinsci / jenkinsci/subversion-plugin

[JENKINS-47844] Repeatable intermittent svn update failures due to NPE

Open
#1,442 5 comments 0 reactions 0 assignees View on GitHub
component:subversion-plugin imported-jira-issue priority:minor resolution:unresolved
Dominant language
Java
Stars
131
Forks
275
Avg merge
12h 4m
Merged PRs (30d)
6

Description

I have a multi-configuration project set up to build the same code on Windows and Linux. I have only recently added the CentOS 7 machine in attempt to complete the configuration.

The build is split by using the Conditional BuildStep plugin and assigning a Windows batch command to a build on the Windows node, and a Linux shell command to the build on the Linux node.

For the moment I have disabled the Windows conditional step. When I trigger the build manually, the Linux slave machine will repeatably fail every other build when it attempts to do an update from the Subversion repository. Connectivity is fine, but there's some null pointer exception happening during the update:

14:36:54 Updating at revision '2017-11-01T15:36:42.270 -0500'

14:36:55 Using sole credentials in realm

14:36:57 At revision 6154

{{14:36:57 }}

14:36:58 FATAL: null

14:36:58 java.lang.NullPointerException

14:36:58     at hudson.scm.SubversionChangeLogBuilder.run(SubversionChangeLogBuilder.java:123)

14:36:58     at hudson.scm.SubversionSCM.calcChangeLog(SubversionSCM.java:730)

14:36:58     at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:865)

14:36:58     at hudson.scm.SCM.checkout(SCM.java:495)

14:36:58     at hudson.model.AbstractProject.checkout(AbstractProject.java:1212)

14:36:58     at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:566)

14:36:58     at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)

14:36:58     at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:491)

14:36:58     at hudson.model.Run.execute(Run.java:1737)

14:36:58     at hudson.matrix.MatrixRun.run(MatrixRun.java:146)

14:36:58     at hudson.model.ResourceController.execute(ResourceController.java:97)

14:36:58     at hudson.model.Executor.run(Executor.java:421)

On the next attempt to run the build, it succeeds without a problem. It does not have any time dependence - I can wait for days to re-run the build and it will succeed or fail based on whether it succeeded or failed previously:

11:24:56 Updating at revision '2017-11-06T11:24:24.070 -0600'

11:24:57 Using sole credentials in realm

11:25:00 At revision 6157

{{11:25:00 }}

11:25:00 Run condition [Never] preventing prebuild for step [Execute Windows batch command]

11:25:00 Run condition [Execution node ] enabling prebuild for step [Execute shell]

11:25:00 Run condition [Never] preventing perform for step [Execute Windows batch command]

11:25:00 [Execution node] check if [Centos7-Build] is in [[Centos7-Build]]

11:25:00 Run condition [Execution node ] enabling perform for step [Execute shell]

I have the svn update mechanism set to 'Emulate clean checkout' but I have also tried 'always check out a fresh copy.' Both fail in the same way.

---
Originally reported by pmainwaring, imported from: Repeatable intermittent svn update failures due to NPE


  • status: Open
  • priority: Minor
  • component(s): subversion-plugin
  • resolution: Unresolved
  • votes: 1
  • watchers: 4
  • imported: 20251212-090250

Raw content of original issue

I have a multi-configuration project set up to build the same code on Windows and Linux. I have only recently added the CentOS 7 machine in attempt to complete the configuration.

The build is split by using the Conditional BuildStep plugin and assigning a Windows batch command to a build on the Windows node, and a Linux shell command to the build on the Linux node.

For the moment I have disabled the Windows conditional step. When I trigger the build manually, the Linux slave machine will repeatably fail every other build when it attempts to do an update from the Subversion repository. Connectivity is fine, but there's some null pointer exception happening during the update:

14:36:54 Updating <removed> at revision '2017-11-01T15:36:42.270 -0500'
14:36:55 Using sole credentials <removed> in realm <removed>
14:36:57 At revision 6154
{{14:36:57 }}
14:36:58 FATAL: null
14:36:58 java.lang.NullPointerException
14:36:58     at hudson.scm.SubversionChangeLogBuilder.run(SubversionChangeLogBuilder.java:123)
14:36:58     at hudson.scm.SubversionSCM.calcChangeLog(SubversionSCM.java:730)
14:36:58     at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:865)
14:36:58     at hudson.scm.SCM.checkout(SCM.java:495)
14:36:58     at hudson.model.AbstractProject.checkout(AbstractProject.java:1212)
14:36:58     at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:566)
14:36:58     at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
14:36:58     at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:491)
14:36:58     at hudson.model.Run.execute(Run.java:1737)
14:36:58     at hudson.matrix.MatrixRun.run(MatrixRun.java:146)
14:36:58     at hudson.model.ResourceController.execute(ResourceController.java:97)
14:36:58     at hudson.model.Executor.run(Executor.java:421)

On the next attempt to run the build, it succeeds without a problem. It does not have any time dependence - I can wait for days to re-run the build and it will succeed or fail based on whether it succeeded or failed previously:

11:24:56 Updating <removed> at revision '2017-11-06T11:24:24.070 -0600'
11:24:57 Using sole credentials <removed> in realm <removed>
11:25:00 At revision 6157
{{11:25:00 }}
11:25:00 Run condition [Never] preventing prebuild for step [Execute Windows batch command]
11:25:00 Run condition [Execution node ] enabling prebuild for step [Execute shell]
11:25:00 Run condition [Never] preventing perform for step [Execute Windows batch command]
11:25:00 [Execution node] check if [Centos7-Build] is in [[Centos7-Build]]
11:25:00 Run condition [Execution node ] enabling perform for step [Execute shell]

I have the svn update mechanism set to 'Emulate clean checkout' but I have also tried 'always check out a fresh copy.' Both fail in the same way.

environment

```
Jenkins 2.73.2 master on Windows 7 64 bit (installed w/ installer), with a Centos 7 64-bit slave using SSH.

relevant plugins:

Conditional BuildStep 1.3.6

SSH Slaves 1.22

Subversion 2.9
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.