Benson Margulies wrote:
Paolo,
I think it's a feature. Between 0.8.9 and trunk, TDB got much more
sensitive to modifying anything at all while any iterator was live.
Bah... but, in any case, Fuseki should use proper locking around TDB.
So, maybe there is a problem somewhere.
On Tue, Feb 8, 2011 at 1:13 PM, Paolo Castagna
<[email protected]> wrote:
Hi,
today, I have been playing with the BSBM (i.e. trying to automate as much as
possible).
I got a (reasonable?) bash script:
https://github.com/castagna/bsbm-automated
If I use just one client everything is fine.
However, when I try to run BSBM against Fuseki with more than one client
(i.e. BSBM uses multiple threads to run queries) I get this exception on the
Fuseki log:
java.util.ConcurrentModificationException: Reader = 0, Writer = 2
at
com.hp.hpl.jena.tdb.sys.ConcurrencyPolicyMRSW.policyError(ConcurrencyPolicyMRSW.java:127)
at
com.hp.hpl.jena.tdb.sys.ConcurrencyPolicyMRSW.policyError(ConcurrencyPolicyMRSW.java:122)
at
com.hp.hpl.jena.tdb.sys.ConcurrencyPolicyMRSW.checkConcurrency(ConcurrencyPolicyMRSW.java:62)
at
com.hp.hpl.jena.tdb.sys.ConcurrencyPolicyMRSW.startUpdate(ConcurrencyPolicyMRSW.java:46)
at
com.hp.hpl.jena.tdb.nodetable.NodeTupleTableConcrete.startWrite(NodeTupleTableConcrete.java:54)
at
com.hp.hpl.jena.tdb.nodetable.NodeTupleTableConcrete.sync(NodeTupleTableConcrete.java:237)
at com.hp.hpl.jena.tdb.store.TripleTable.sync(TripleTable.java:89)
at
com.hp.hpl.jena.tdb.store.DatasetGraphTDB.sync(DatasetGraphTDB.java:262)
at com.hp.hpl.jena.sparql.SystemARQ.sync(SystemARQ.java:47)
at org.openjena.fuseki.servlets.HttpAction.sync(HttpAction.java:61)
at
org.openjena.fuseki.servlets.HttpAction.endWrite(HttpAction.java:39)
at
org.openjena.fuseki.servlets.SPARQL_Query.execute(SPARQL_Query.java:226)
at
org.openjena.fuseki.servlets.SPARQL_Query.executeForm(SPARQL_Query.java:187)
at
org.openjena.fuseki.servlets.SPARQL_Query.perform(SPARQL_Query.java:87)
at
org.openjena.fuseki.servlets.SPARQL_ServletBase.doCommon(SPARQL_ServletBase.java:76)
at
org.openjena.fuseki.servlets.SPARQL_Query.doGet(SPARQL_Query.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:534)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:475)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:224)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:921)
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:403)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:184)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:856)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:114)
at org.eclipse.jetty.server.Server.handle(Server.java:352)
at
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:596)
at
org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:1052)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:590)
at
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:212)
at
org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:426)
at
org.eclipse.jetty.server.nio.BlockingChannelConnector$BlockingChannelEndPoint.run(BlockingChannelConnector.java:292)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:450)
at java.lang.Thread.run(Thread.java:619)
I have been using TDB (from trunk) and Fuseki (from trunk):
Jena: VERSION: 2.6.4
Jena: BUILD_DATE: 2010-12-12T16:56:15+0000
ARQ: VERSION: 2.8.8-SNAPSHOT
ARQ: BUILD_DATE: 2011-02-04T18:04:22+0000
TDB: VERSION: 0.8.10-SNAPSHOT
TDB: BUILD_DATE: 2011-02-07T13:25:50+0000
Fuseki: VERSION: 0.2.0-SNAPSHOT
Fuseki: BUILD_DATE: 2011-02-08T12:43:18+0000
I have tried to do the same with Joseki v3.4.3 (I was not able to check it
out using CVS as anonymous user, bah...)
I know, I know...
I am just asking, is it a known problem?
Paolo