-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
Jenkins 2.401.1, Dimensions Plugin Version 0.9.3.1, Windows 10, Chrome
We have almost 150 projects setup in Jenkins, and only one of them gives me this checkout error. This one project is massive and when it builds it takes almost 10 minutes to run and complete. It'll take about 5 minutes before the build errors on the checkout process and then fails. After it fails, I can run the same build again with no changes and it will run successfully. I'm wondering if because the build takes so long and the application is so large that it actually times out on the checkout process, since it will run successfully right after failing and its the only project I have this issue with?
Here is the error messages I receive when it fails:
Running as SYSTEM
[EnvInject] - Loading node environment variables.
Building in workspace D:\.jenkins\workspace\JobNet_Maintenance_Stream
[DIMENSIONS] Running checkout on master...
[DIMENSIONS] Running build in 'D:\.jenkins\workspace\JobNet_Maintenance_Stream'...
[DIMENSIONS] Removing 'file:/D:/.jenkins/workspace/JobNet_Maintenance_Stream/'...
[DIMENSIONS] Checking out project "JBOSS:JOBNET_MAINT2019"...
[DIMENSIONS] Checking out directory 'Development\jobnet'...
FATAL: Unable to run checkout callout (IOException: Exception during checkout (DimensionsRuntimeException: Dimensions command 'UPDATE /BRIEF /DIR="Development\jobnet"/WORKSET="JBOSS:JOBNET_MAINT2019" /USER_DIR="D:\.jenkins\workspace\JobNet_Maintenance_Stream" /NOMETADATA' failed (DimensionsConnectionException: java.net.SocketException: Connection reset)))
java.io.IOException: Unable to run checkout callout (IOException: Exception during checkout (DimensionsRuntimeException: Dimensions command 'UPDATE /BRIEF /DIR="Development\jobnet"/WORKSET="JBOSS:JOBNET_MAINT2019" /USER_DIR="D:\.jenkins\workspace\JobNet_Maintenance_Stream" /NOMETADATA' failed (DimensionsConnectionException: java.net.SocketException: Connection reset)))
at hudson.plugins.dimensionsscm.CheckOutAPITask.execute(CheckOutAPITask.java:220)
at hudson.plugins.dimensionsscm.GenericAPITask.invoke(GenericAPITask.java:53)
Caused: java.io.IOException: Exception during login (IOException: Unable to run checkout callout (IOException: Exception during checkout (DimensionsRuntimeException: Dimensions command 'UPDATE /BRIEF /DIR="Development\jobnet"/WORKSET="JBOSS:JOBNET_MAINT2019" /USER_DIR="D:\.jenkins\workspace\JobNet_Maintenance_Stream" /NOMETADATA' failed (DimensionsConnectionException: java.net.SocketException: Connection reset))))
at hudson.plugins.dimensionsscm.GenericAPITask.invoke(GenericAPITask.java:56)
at hudson.plugins.dimensionsscm.CheckOutAPITask.invoke(CheckOutAPITask.java:20)
at hudson.plugins.dimensionsscm.GenericAPITask.invoke(GenericAPITask.java:14)
at hudson.FilePath.act(FilePath.java:1198)
at hudson.FilePath.act(FilePath.java:1181)
at hudson.plugins.dimensionsscm.DimensionsSCM.checkout(DimensionsSCM.java:761)
at hudson.scm.SCM.checkout(SCM.java:540)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1240)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:649)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:85)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:521)
at hudson.model.Run.execute(Run.java:1900)
at hudson.maven.MavenModuleSetBuild.run(MavenModuleSetBuild.java:543)
at hudson.model.ResourceController.execute(ResourceController.java:101)
at hudson.model.Executor.run(Executor.java:442)
Hi #brumms, it does sound like some kind of timeout. However, 5 or 10 minutes doesn't actually sound that long - I've seen jobs that fetch for 20 or 30 minutes on very large streams.
One thing to consider is if there is any software on your network that might be cutting the TCP network connection (like a firewall or other network utility) between Jenkins and the Dimensions CM server. This seems a possible explanation given the abrupt 'Connection reset' message you are seeing.
If you follow the instructions at https://github.com/jenkinsci/dimensionsscm-plugin/blob/master/docs/logging.md (clear the log before a failed build, run a failing build, then copy-and-paste the log contents here) then there may be additional information in the diagnostic logs that helps understand what's going on.
If we can't get anywhere with it, then there is an option used when uploading artifacts to force the use of *dmcli.exe* instead of the Java API, which I could extend to apply to downloads as well - although of course it's likely dmcli will be affected the same way as the Java API if this is due to some network hardware cutting the network connections. You could also try setting up a Jenkins agent, which would use that option (to use *dmcli.exe* for download) by default