Tuesday, 15 January 2013

multithreading - How to debug unexplained thread interruption in Java -



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