Bug #133
Sporadic concurrent access in StringPoolSession
Start date:
Due date:
% Done:
0%
Estimated time:
Resolution:
fixed
Description
Twice, on two different machines/os's/jdk's we've seen the
ItqlInterpreterBeanUnitTest fail with the following stack trace:
org.mulgara.query.QueryException: Unable to load file:/Users/pag/src/mulgara/trunk/data/camera.n3 into rmi://10.0.1.198/server1#itqlmodel at org.mulgara.resolver.DatabaseSession.execute(DatabaseSession.java:726) at org.mulgara.resolver.DatabaseSession.setModel(DatabaseSession.java:562) at org.mulgara.server.rmi.SessionWrapperRemoteSession.setModel(SessionWrapperRemoteSession.java:123) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305) at sun.rmi.transport.Transport$1.run(Transport.java:159) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:155) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:637) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142) at org.mulgara.server.rmi.RemoteSessionImpl_Stub.setModel(Unknown Source) at org.mulgara.server.rmi.RemoteSessionWrapperSession.setModel(RemoteSessionWrapperSession.java:166) at org.mulgara.query.operation.Load.doTx(Load.java:101) at org.mulgara.query.operation.DataInputTx.sendMarshalledData(DataInputTx.java:111) at org.mulgara.query.operation.Load.execute(Load.java:79) at org.mulgara.itql.ItqlInterpreterBean.load(ItqlInterpreterBean.java:707) at org.mulgara.itql.ItqlInterpreterBeanUnitTest.testLoadApi8(ItqlInterpreterBeanUnitTest.java:577) Caused by: org.mulgara.query.QueryException: org.mulgara.query.MulgaraTransactionException: Transaction rollback triggered at org.mulgara.resolver.MulgaraInternalTransaction.implicitRollback(MulgaraInternalTransaction.java:516) at org.mulgara.resolver.MulgaraInternalTransaction.execute(MulgaraInternalTransaction.java:627) at org.mulgara.resolver.DatabaseSession.execute(DatabaseSession.java:723) at org.mulgara.resolver.DatabaseSession.setModel(DatabaseSession.java:562) at org.mulgara.server.rmi.SessionWrapperRemoteSession.setModel(SessionWrapperRemoteSession.java:123) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305) at sun.rmi.transport.Transport$1.run(Transport.java:159) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:155) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:637) Caused by: org.mulgara.query.QueryException: org.mulgara.resolver.spi.ResolverException: Unable to read input statements at org.mulgara.resolver.store.StatementStoreResolver.modifyModel(StatementStoreResolver.java:381) at org.mulgara.resolver.InternalResolver.modifyModel(InternalResolver.java:164) at org.mulgara.resolver.SetModelOperation.execute(SetModelOperation.java:153) at org.mulgara.resolver.MulgaraInternalTransaction.execute(MulgaraInternalTransaction.java:623) Caused by: org.mulgara.query.QueryException: org.mulgara.query.TuplesException: Exception while reading file:/Users/pag/src/mulgara/trunk/data/camera.n3 at org.mulgara.content.n3.Parser.checkForException(Parser.java:517) at org.mulgara.content.n3.Parser.getTriple(Parser.java:539) at org.mulgara.content.n3.N3Statements.next(N3Statements.java:389) at org.mulgara.resolver.store.StatementStoreResolver.modifyModel(StatementStoreResolver.java:353) Caused by: java.lang.IllegalStateException: Concurrent Access of [[StringPoolSession]] Attempted at org.mulgara.resolver.StringPoolSession.checkCurrentThread(StringPoolSession.java:787) at org.mulgara.resolver.StringPoolSession.localizePersistent(StringPoolSession.java:207) at org.mulgara.resolver.store.StatementStoreResolver.localizePersistent(StatementStoreResolver.java:451) at org.mulgara.resolver.PersistentResolverSession.localize(PersistentResolverSession.java:97) at org.mulgara.content.n3.Parser.createBlankNode(Parser.java:453) at org.mulgara.content.n3.Parser.getBlankNode(Parser.java:424) at org.mulgara.content.n3.Parser.toNode(Parser.java:362) at org.mulgara.content.n3.Parser.quad(Parser.java:272) at com.hp.hpl.jena.n3.N3AntlrParser.emitQuad(N3AntlrParser.java:66) at com.hp.hpl.jena.n3.N3AntlrParser.objectList(N3AntlrParser.java:738) at com.hp.hpl.jena.n3.N3AntlrParser.propValue(N3AntlrParser.java:622) at com.hp.hpl.jena.n3.N3AntlrParser.propertyList(N3AntlrParser.java:336) at com.hp.hpl.jena.n3.N3AntlrParser.statement0(N3AntlrParser.java:287) at com.hp.hpl.jena.n3.N3AntlrParser.statement(N3AntlrParser.java:204) at com.hp.hpl.jena.n3.N3AntlrParser.document(N3AntlrParser.java:153) at com.hp.hpl.jena.n3.N3Parser.parse(N3Parser.java:61) at org.mulgara.content.n3.Parser.run(Parser.java:213)
Unfortunately, this has not been reproduceable. But interestingly
enough the stack trace was identical in both cases.
Updated by ronald - over 14 years ago
- Status changed from New to In Progress
Looks like this is easily reproducible under jdk 1.6.
Updated by ronald - over 14 years ago
- Status changed from In Progress to Closed
- Resolution set to fixed
Fixed in r1143.