-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
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
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.
This appears to be an issue if, and only if, the directory supplied to the SVN plugin as the checkout directory contains characters that would normally need to be escaped. I'm not sure it has anything to do with being a multi-configuration project.
I.e., if I check out my repo into the directory "blahblah\workspace", this issue occurs. If I change it to check into just "workspace" it does not.