-
Bug
-
Resolution: Fixed
-
Major
-
None
-
Platform: All, OS: All
-
Powered by SuggestiMate
Using
- Hudson 1.101
- SSH to launch a slave agent (Linux master, Windows/Cygwin slave)
- the svn+ssh protocol for a Subversion repository
- credentials with a username and a private keyfile (no passphrase)
The build succeeds on a master node, however, an exception occurs when it is
tied to a slave node:
java.lang.NullPointerException:
at
hudson.scm.SubversionSCM$DescriptorImpl$SshPublicKeyCredential.getKeyFile(SubversionSCM.java:598)
at
hudson.scm.SubversionSCM$DescriptorImpl$SshPublicKeyCredential.createSVNAuthentication(SubversionSCM.java:619)
at
hudson.scm.SubversionSCM$DescriptorImpl$SshPublicKeyCredential.createSVNAuthentication(SubversionSCM.java:568)
at
hudson.scm.SubversionSCM$DescriptorImpl$SVNAuthenticationProviderImpl.requestClientAuthentication(SubversionSCM.java:661)
at
org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:148)
at
org.tmatesoft.svn.core.internal.io.svn.SVNGanymedConnector.open(SVNGanymedConnector.java:62)
at
org.tmatesoft.svn.core.internal.io.svn.SVNConnection.open(SVNConnection.java:59)
at
org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:999)
at
org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.getLatestRevision(SVNRepositoryImpl.java:136)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.getRevisionNumber(SVNBasicClient.java:344)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.getLocations(SVNBasicClient.java:458)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:414)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:378)
at
org.tmatesoft.svn.core.wc.SVNUpdateClient.doCheckout(SVNUpdateClient.java:305)
at hudson.scm.SubversionSCM$1.invoke(SubversionSCM.java:304)
at hudson.scm.SubversionSCM$1.invoke(SubversionSCM.java:277)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:904)
at hudson.remoting.UserRequest.perform(UserRequest.java:57)
at hudson.remoting.UserRequest.perform(UserRequest.java:22)
at hudson.remoting.Request$2.run(Request.java:178)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
- SubversionSCM.java
- 39 kB
- dbertrand
[JENKINS-474] svn+ssh on slave node causes org.tmatesoft.svn.core.SVNCancelException
Hi Kohsuke,
Sorry for not being able to test the fix earlier.
I have tested both 1.102 and 1.103, and neither seems to fix the bug.
Immediately after upgrading (and probably the first time a credential is
entered, but I did not verify), I get:
Building remotely on ...
FATAL: remote file operation failed
hudson.util.IOException2: remote file operation failed
at hudson.FilePath.act(FilePath.java:234)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:278)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:236)
at hudson.model.AbstractProject.checkout(AbstractProject.java:306)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:152)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:118)
at hudson.model.Run.run(Run.java:559)
at hudson.model.Build.run(Build.java:101)
at hudson.model.Executor.run(Executor.java:61)
Caused by: java.io.IOException: Remote call failed
at hudson.remoting.Channel.call(Channel.java:249)
at hudson.FilePath.act(FilePath.java:231)
... 8 more
Caused by: java.lang.NoClassDefFoundError: hudson/remoting/ProxyOutputStream$Flush
at hudson.remoting.RemoteOutputStream.readObject(RemoteOutputStream.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at hudson.model.StreamBuildListener.readObject(StreamBuildListener.java:65)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
Subsequently, and even after restarting the slave launcher and/or hudson, I get
the less descriptive:
Building remotely on ...
Checking out svn+ssh://...
ERROR: Failed to check out svn+ssh://...
org.tmatesoft.svn.core.SVNCancelException: svn: authentication cancelled
at
org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:30)
at
org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:155)
at
org.tmatesoft.svn.core.internal.io.svn.SVNGanymedConnector.open(SVNGanymedConnector.java:89)
at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.open(SVNConnection.java:59)
at
org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:999)
at
org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.getLatestRevision(SVNRepositoryImpl.java:136)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.getRevisionNumber(SVNBasicClient.java:344)
at org.tmatesoft.svn.core.wc.SVNBasicClient.getLocations(SVNBasicClient.java:458)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:414)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:378)
at org.tmatesoft.svn.core.wc.SVNUpdateClient.doCheckout(SVNUpdateClient.java:305)
at hudson.scm.SubversionSCM$1.invoke(SubversionSCM.java:305)
at hudson.scm.SubversionSCM$1.invoke(SubversionSCM.java:278)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:904)
at hudson.remoting.UserRequest.perform(UserRequest.java:57)
at hudson.remoting.UserRequest.perform(UserRequest.java:22)
at hudson.remoting.Request$2.run(Request.java:178)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Any ideas?
ps. I will be available to help test subsequent fixes.
Thanks!
Minor addendum. Initially, I suspected that this was because the slave node has
an outdated slave.jar, but further inspection of the pom.xml within verified
that I was using 1.102 and 1.103 respectively.
Thank you. I wonder if there's any error left in the system log. This part of
SVNKit makes it difficult for me to propagate an error.
I'll use RuntimeException to bypass this, in the mean time.
Updating the bug report on 1.104
Summary:
The IOException no longer occurs, but the SVNCancelException still does.
Console output:
started
Building remotely on slave.hostname
Checking out a fresh workspace because Hudson failed to detect the current
workspace \cygwin\home\hudson-slave\workspace\debug-remote-svn-ssh\.
ERROR: svn: Path '\cygwin\home\hudson-slave\workspace\debug-remote-svn-ssh\.'
ends in '.', which is unsupported for this operation
org.tmatesoft.svn.core.SVNException: svn: Path
'\cygwin\home\hudson-slave\workspace\debug-remote-svn-ssh\.' ends in '.', which
is unsupported for this operation
at
org.tmatesoft.svn.core.internal.wc.SVNErrorManager.error(SVNErrorManager.java:49)
at
org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.probe(SVNWCAccess.java:642)
at
org.tmatesoft.svn.core.internal.wc.admin.SVNWCAccess.probeOpen(SVNWCAccess.java:262)
at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:1817)
at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:1754)
at org.tmatesoft.svn.core.wc.SVNWCClient.doInfo(SVNWCClient.java:2108)
at hudson.scm.SubversionSCM.parseSvnInfo(SubversionSCM.java:366)
at hudson.scm.SubversionSCM.access$000(SubversionSCM.java:74)
at hudson.scm.SubversionSCM$3.invoke(SubversionSCM.java:451)
at hudson.scm.SubversionSCM$3.invoke(SubversionSCM.java:438)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:904)
at hudson.remoting.UserRequest.perform(UserRequest.java:57)
at hudson.remoting.UserRequest.perform(UserRequest.java:22)
at hudson.remoting.Request$2.run(Request.java:178)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
Checking out svn+ssh://...
ERROR: Failed to check out svn+ssh://...
org.tmatesoft.svn.core.SVNCancelException: svn: authentication cancelled
at
org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:30)
at
org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:155)
at
org.tmatesoft.svn.core.internal.io.svn.SVNGanymedConnector.open(SVNGanymedConnector.java:89)
at
org.tmatesoft.svn.core.internal.io.svn.SVNConnection.open(SVNConnection.java:59)
at
org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:999)
at
org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.getLatestRevision(SVNRepositoryImpl.java:136)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.getRevisionNumber(SVNBasicClient.java:344)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.getLocations(SVNBasicClient.java:458)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:414)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:378)
at
org.tmatesoft.svn.core.wc.SVNUpdateClient.doCheckout(SVNUpdateClient.java:305)
at hudson.scm.SubversionSCM$1.invoke(SubversionSCM.java:305)
at hudson.scm.SubversionSCM$1.invoke(SubversionSCM.java:278)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:904)
at hudson.remoting.UserRequest.perform(UserRequest.java:57)
at hudson.remoting.UserRequest.perform(UserRequest.java:22)
at hudson.remoting.Request$2.run(Request.java:178)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
finished: FAILURE
Started 6 seconds ago
Estimated remaining time: N/A
System log:
Apr 24, 2007 1:25:20 PM hudson.model.Run run
INFO: debug-remote-svn-ssh #1 main build action completed: FAILURE
Apr 24, 2007 1:25:20 PM hudson.model.Run setResult
INFO: debug-remote-svn-ssh #1 : result is set to FAILURE by
hudson.model.Run.run(Run.java:559)
Apr 24, 2007 1:23:44 PM hudson.scm.SubversionSCM$DescriptorImpl$2 check
INFO: Failed to access subversion repository svn+ssh://...
org.tmatesoft.svn.core.SVNCancelException: svn: authentication cancelled
at
org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:30)
at
org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getNextAuthentication(DefaultSVNAuthenticationManager.java:181)
at
org.tmatesoft.svn.core.internal.io.svn.SVNGanymedConnector.open(SVNGanymedConnector.java:76)
at
org.tmatesoft.svn.core.internal.io.svn.SVNConnection.open(SVNConnection.java:59)
at
org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:999)
at
org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.testConnection(SVNRepositoryImpl.java:68)
at hudson.scm.SubversionSCM$DescriptorImpl$2.check(SubversionSCM.java:817)
at hudson.util.FormFieldValidator.process(FormFieldValidator.java:40)
at
hudson.scm.SubversionSCM$DescriptorImpl.doSvnRemoteLocationCheck(SubversionSCM.java:791)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:95)
at org.kohsuke.stapler.Function.bindAndinvoke(Function.java:51)
at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:63)
at
org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:270)
at org.kohsuke.stapler.MetaClass$9.doDispatch(MetaClass.java:240)
at
org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:30)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:270)
at org.kohsuke.stapler.Stapler.invoke(Stapler.java:207)
at org.kohsuke.stapler.Stapler.service(Stapler.java:72)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
at winstone.ServletConfiguration.execute(ServletConfiguration.java:249)
at winstone.RequestDispatcher.forward(RequestDispatcher.java:334)
at
winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)
at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)
at java.lang.Thread.run(Thread.java:595)
Apr 24, 2007 1:22:37 PM hudson.model.Slave$ComputerImpl$1 run
INFO: slave agent launched for slave.hostname
Apr 24, 2007 1:22:33 PM hudson.TcpSlaveAgentListener
INFO: JNLP slave agent listener started on TCP port 42434
Apr 24, 2007 1:22:33 PM hudson.PluginWrapper
INFO: Loading plugin: /var/lib/hudson/data/plugins/xvnc.hpi
Apr 24, 2007 1:22:33 PM hudson.PluginWrapper
INFO: Loading plugin: /var/lib/hudson/data/plugins/trac.hpi
Thread dump:
I have saved a copy of it on my local machine, and can attach it if you think it
would be helpful.
- Kian Win
This report now contains two issues.
The first is that '.' in the path confuses SVNKit to abort svn info, and I put
the fix for that in 1.105.
The second issue is that "authentication cancelled" is reported without much
information. I added debug logging for this in 1.105. To enable this, run the
following program from the scripting console,
java.util.Logger.getLogger("hudson.scm.SubversionSCM").setLevel(java.util.logging.Level.ALL);
then perform a build to reproduce a problem. Then you should see more
information in the system log screen in the Hudson webui.
I need to implement #517 to further improve the trouble-shooting capability in
Hudson
The first issue is fixed.
For the second issue, I ran:
java.util.logging.Logger.getLogger("hudson.scm.SubversionSCM").setLevel(java.util.logging.Level.ALL)
and obtained on the system log:
Apr 27, 2007 1:25:03 AM hudson.model.Run run
INFO: debug-remote-svn-ssh #2 main build action completed: FAILURE
Apr 27, 2007 1:25:03 AM hudson.scm.SubversionSCM
FINE:
getCredential(svn+ssh://...)=>hudson.scm.SubversionSCM$DescriptorImpl$SshPublicKeyCredential@d50eb9
Apr 27, 2007 1:25:03 AM hudson.scm.SubversionSCM
FINE:
getCredential(svn+ssh://...)=>hudson.scm.SubversionSCM$DescriptorImpl$SshPublicKeyCredential@d50eb9
The console output remains:
...
org.tmatesoft.svn.core.SVNCancelException: svn: authentication cancelled
...
I added one more probe message in 1.107 SNAPSHOT. Would it be possible to try
the latest snapshot with the same debug probe?
I wonder if it's at all possible for you to run Hudson under the debugger to see
what's going on.
Sorry for being away for awhile.
On 1.107-SNAPSHOT, the system log produces:
May 23, 2007 9:32:13 PM hudson.model.Run run
INFO: debug-remote-svn-ssh #1 main build action completed: FAILURE
May 23, 2007 9:32:13 PM hudson.scm.SubversionSCM
FINE:
getCredential(svn+ssh://server.com)=>hudson.scm.SubversionSCM$DescriptorImpl$SshPublicKeyCredential@74cb02
May 23, 2007 9:32:08 PM hudson.scm.SubversionSCM
FINE:
getCredential(svn+ssh://server.com)=>hudson.scm.SubversionSCM$DescriptorImpl$SshPublicKeyCredential@74cb02
May 23, 2007 9:31:59 PM hudson.triggers.SCMTrigger$Runner runPolling
INFO: Polling SCM changes of hudson-job
May 23, 2007 9:31:56 PM hudson.scm.SubversionSCM
FINE:
requestClientAuthentication(svn.ssh,svn+ssh://server.com/home/hudson-slave/svn/project/trunk/src,svn+ssh://server.com)
=>hudson.scm.SubversionSCM$DescriptorImpl$SshPublicKeyCredential@74cb02
May 23, 2007 9:31:56 PM hudson.scm.SubversionSCM
FINE:
getCredential(svn+ssh://server.com)=>hudson.scm.SubversionSCM$DescriptorImpl$SshPublicKeyCredential@74cb02
Nothing much there, huh. =/
I could try to attach a debugger to Hudson, if I could figure out how to make it
work. Actually, I did attempt to establish a remote debugging session through
Eclipse, but I did not succeed in placing a breakpoint. Any mini-guides that you
know off the top of your head?
Also, I'm guessing it will be more interesting to look at the
org.tmatesoft.svn.core package? The code in SubversionSCM.java appears to be
fairly straight-forward...
Hmm. All the log messages appear to be as expected. Hudson is returning a
credential that the SVNKit is supposed to use.
It would be really great if you can try a debugger. Normally, when a break point
fails to attach like you describe, the cause is that your source files aren't
matching the binary. You can verify this hypothesis by placing breakpoints to a
lot of places (and hope one of them hits, and from there you can look at local
variables and so on to see if the line numbers are matching), place break points
on exceptions (that hits when exceptions are thrown), or place breakpoints to
somewhere very stable.
Created an attachment (id=64)
Patch for "Authentication cancelled" SVNSSHAuthentication bug.
I believe I fixed this bug in 1.113, but I'm not sure. Verification appreciated.
dbertrand, thank you for the patch, but you attached the whole source file, not
the diff. Since I can't figure out which version of the file you based your
change, I can't be sure what changes you made.
I compared it against the trunk, but I didn't find obvious changes. Perhaps the
Hudson code since evolved to contain the same fix?
The issue remains in Hudson 1.114. The same exception occurs:
org.tmatesoft.svn.core.SVNCancelException: svn: authentication cancelled
at
org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:30)
at
org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getFirstAuthentication(DefaultSVNAuthenticationManager.java:155)
at
org.tmatesoft.svn.core.internal.io.svn.SVNGanymedConnector.open(SVNGanymedConnector.java:89)
at org.tmatesoft.svn.core.internal.io.svn.SVNConnection.open(SVNConnection.java:60)
at
org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.openConnection(SVNRepositoryImpl.java:998)
at
org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryImpl.getLatestRevision(SVNRepositoryImpl.java:136)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.getRevisionNumber(SVNBasicClient.java:344)
at org.tmatesoft.svn.core.wc.SVNBasicClient.getLocations(SVNBasicClient.java:458)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:414)
at
org.tmatesoft.svn.core.wc.SVNBasicClient.createRepository(SVNBasicClient.java:378)
at org.tmatesoft.svn.core.wc.SVNUpdateClient.doCheckout(SVNUpdateClient.java:305)
at hudson.scm.SubversionSCM$1.invoke(SubversionSCM.java:305)
at hudson.scm.SubversionSCM$1.invoke(SubversionSCM.java:278)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:933)
at hudson.remoting.UserRequest.perform(UserRequest.java:57)
at hudson.remoting.UserRequest.perform(UserRequest.java:22)
at hudson.remoting.Request$2.run(Request.java:178)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
at java.lang.Thread.run(Thread.java:595)
I am migrating the Hudson slave from Cygwin to Linux in the next few days, so I
will be able to check if this bug is platform-specific in any way.
I think I fixed this for 1.102, but I don't have an environment to verify the fix.
Can you try the snapshot build and see if the fix is really working or not?