Peter, I'll build from source and apply the patch. Tomorrow will be pretty hectic, but I will try to run through this on Wednesday.
Thanks, Bryan > -----Original Message----- > From: Peter Firmstone [mailto:[email protected]] > Sent: Monday, February 06, 2012 5:41 PM > To: [email protected] > Cc: Bryan Thompson > Subject: Re: Interrupt propagated to wrong thread? > > Well, not to my knowledge, anything could be interrupting the > thread (because it's waiting) on the remote machine which is > propagating it as an IOException. > > So we don't know in this case what caused the interruption, > as that stack trace is missing. > > Do you have logging activated at the remote end? > > I've attached a patch that will record the stack trace, which > should identify interrupt cause. > > But you'll need to build River from source. > > Alternatively I can commit the patch and you can pick up a > Hudson build? > > Regards, > > Peter. > > > Bryan Thompson wrote: > > I am curious whether there is any known problem where an > interrupt could be propagated into the wrong thread by the > jini/river library (this is against river 2.2), or perhaps > retained across the reuse of a thread for another task. > > > > The critical bit of the stack trace that I am seeing is: > > > > Caused by: java.io.IOException: request I/O interrupted > > at > com.sun.jini.jeri.internal.mux.Session$MuxInputStream.read(Ses > sion.java:833) > > at > net.jini.jeri.connection.ConnectionManager$Outbound$Input.read (ConnectionManager.java:550) > > at > net.jini.jeri.BasicObjectEndpoint.executeCall(BasicObjectEndpo > int.java:410) > > at > net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(Ba > sicInvocationHandler.java:806) > > ... 12 more > > > > There are definitely times when we interrupt operations, > but I am having a very difficult time finding a reason why an > interrupt would have been generated during this phase of > query processing by our application. However, there are > heavy concurrent operations going on which could cause > interrupts. Is it possible that the interrupt is being > propagated into another thread by mistake? > > > > The full stack trace is: > > > > java.util.concurrent.ExecutionException: > java.rmi.UnmarshalException: exception unmarshalling > response; nested exception is: > > java.io.IOException: request I/O interrupted > > at > java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222) > > at java.util.concurrent.FutureTask.get(FutureTask.java:83) > > at > com.bigdata.service.ndx.ClientIndexView.runParallel(ClientInde > xView.java:1742) > > at > com.bigdata.service.ndx.ClientIndexView.runTasks(ClientIndexVi > ew.java:1656) > > at > com.bigdata.service.ndx.ClientIndexView.submit(ClientIndexView > .java:1421) > > at > com.bigdata.service.ndx.ClientIndexView.submit(ClientIndexView > .java:1338) > > at > com.bigdata.service.ndx.ClientIndexView.rangeCount(ClientIndex > View.java:609) > > at > com.bigdata.relation.accesspath.AccessPath.historicalRangeCoun > t(AccessPath.java:1357) > > at > com.bigdata.relation.accesspath.AccessPath.rangeCount(AccessPa > th.java:1325) > > at > com.bigdata.rdf.sparql.ast.optimizers.ASTStaticJoinOptimizer.a > ttachRangeCounts(ASTStaticJoinOptimizer.java:510) > > at > com.bigdata.rdf.sparql.ast.optimizers.ASTStaticJoinOptimizer.o > ptimize(ASTStaticJoinOptimizer.java:312) > > at > com.bigdata.rdf.sparql.ast.optimizers.ASTStaticJoinOptimizer.o > ptimize(ASTStaticJoinOptimizer.java:457) > > at > com.bigdata.rdf.sparql.ast.optimizers.ASTStaticJoinOptimizer.o > ptimize(ASTStaticJoinOptimizer.java:457) > > at > com.bigdata.rdf.sparql.ast.optimizers.ASTStaticJoinOptimizer.o > ptimize(ASTStaticJoinOptimizer.java:179) > > at > com.bigdata.rdf.sparql.ast.optimizers.ASTOptimizerList.optimiz > e(ASTOptimizerList.java:92) > > at > com.bigdata.rdf.sparql.ast.eval.AST2BOpUtility.convert(AST2BOp > Utility.java:193) > > at > com.bigdata.rdf.sparql.ast.eval.ASTEvalHelper.evaluateGraphQue > ry(ASTEvalHelper.java:314) > > at > com.bigdata.rdf.sail.BigdataSailGraphQuery.evaluate(BigdataSai > lGraphQuery.java:91) > > at > org.openrdf.repository.sail.SailGraphQuery.evaluate(SailGraphQ > uery.java:102) > > at > com.bigdata.rdf.sail.webapp.BigdataRDFContext$GraphQueryTask.d > oQuery(BigdataRDFContext.java:799) > > at > com.bigdata.rdf.sail.webapp.BigdataRDFContext$AbstractQueryTas > k.call(BigdataRDFContext.java:632) > > at > com.bigdata.rdf.sail.webapp.BigdataRDFContext$AbstractQueryTas > k.call(BigdataRDFContext.java:280) > > at > java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadP > oolExecutor.java:886) > > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolE > xecutor.java:908) > > at java.lang.Thread.run(Thread.java:662) > > Caused by: java.rmi.UnmarshalException: exception > unmarshalling response; nested exception is: > > java.io.IOException: request I/O interrupted > > at > net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(Ba > sicInvocationHandler.java:847) > > at > net.jini.jeri.BasicInvocationHandler.invokeRemoteMethod(BasicI > nvocationHandler.java:659) > > at > net.jini.jeri.BasicInvocationHandler.invoke(BasicInvocationHan > dler.java:528) > > at $Proxy3.submit(Unknown Source) > > at > com.bigdata.service.ndx.AbstractDataServiceProcedureTask.submi > t(AbstractDataServiceProcedureTask.java:348) > > at > com.bigdata.service.ndx.AbstractDataServiceProcedureTask.submi > t(AbstractDataServiceProcedureTask.java:292) > > at > com.bigdata.service.ndx.AbstractDataServiceProcedureTask.call( > AbstractDataServiceProcedureTask.java:215) > > at > com.bigdata.service.ndx.AbstractDataServiceProcedureTask.call( > AbstractDataServiceProcedureTask.java:45) > > ... 5 more > > Caused by: java.io.IOException: request I/O interrupted > > at > com.sun.jini.jeri.internal.mux.Session$MuxInputStream.read(Ses > sion.java:833) > > at > net.jini.jeri.connection.ConnectionManager$Outbound$Input.read (ConnectionManager.java:550) > > at > net.jini.jeri.BasicObjectEndpoint.executeCall(BasicObjectEndpo > int.java:410) > > at > net.jini.jeri.BasicInvocationHandler.invokeRemoteMethodOnce(Ba > sicInvocationHandler.java:806) > > ... 12 more > > Caused by: java.lang.InterruptedException > > at java.lang.Object.wait(Native Method) > > at java.lang.Object.wait(Object.java:485) > > at > com.sun.jini.jeri.internal.mux.Session$MuxInputStream.read(Ses > sion.java:829) > > ... 15 more > > > > > >
