Project

General

Profile

Bug #133

Sporadic concurrent access in StringPoolSession

Added by ronald - over 15 years ago. Updated over 15 years ago.

Status:
Closed
Priority:
Urgent
Assignee:
Category:
Mulgara
Target version:
-
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.

#1

Updated by ronald - over 15 years ago

  • Status changed from New to In Progress

Looks like this is easily reproducible under jdk 1.6.

#2

Updated by ronald - over 15 years ago

  • Status changed from In Progress to Closed
  • Resolution set to fixed

Fixed in r1143.

Also available in: Atom PDF