multithreading - How to debug unexplained thread interruption in Java -
i'm getting interruptedexception
jenkins, relevant part of stack trace:
java.lang.interruptedexception @ java.lang.object.wait(native method) @ hudson.remoting.request.call(request.java:127) @ hudson.remoting.channel.call(channel.java:646) @ hudson.remoting.remoteinvocationhandler.invoke(remoteinvocationhandler.java:158) @ $proxy33.join(unknown source) @ hudson.launcher$remotelauncher$procimpl.join(launcher.java:861)
that interrupt unexpected , far unexplained. can't create happen under debugger practically, happens in ci in production use, , happens rarely, in under 1% of jenkins job executions. combing through various logs hasn't yielded useful hints of cause far. remote jenkins node did not seem have disconnection @ time.
question: how find out cause of interruptedexception, or else potentially useful, above constraints?
any other ideas tracking downwards cause of such exception welcome! perhaps jenkins/hudson specific, not covered this before question (answers of aren't helpful here).
the interruptedexception looks normal. checking jenkins source code see gets handled (they close resources in grab block) , rethrow. out of box don't why (waiting in first place).
looking @ comment before wait:
// don't know when can happen, pendingcalls cleaned channel, // in production i've observed in rare occasion can block forever, after channel // gone. defensive against that. wait(30*1000);
i added wait overcome "rare occasion of blocking forever" , @ same time introduced death interrupt waiting.
your best bet check jenkins issue tracker , file study jobs failing because waiting gets interrupted every , , cancels remote call. think should either go waiting if want spend amount of time waiting or go on not fail @ point.
java multithreading jenkins hudson interrupted-exception
No comments:
Post a Comment