jena-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andy Seaborne <andy.seabo...@epimorphics.com>
Subject Re: ConcurrentModificationException with Fuseki/TDB
Date Tue, 08 Feb 2011 20:46:43 GMT
New SNAPSHOT built.

 > SPARQL_Query.executeForm

It's a SPARQL Update set by POST in an HTML form.

What does the log say?

I've found potential bug and added some Fuseki-level internal checking. 
  While it works for me, I haven't run your script.  Also, Andreas tells 
me that the BSBM tools have changed a lot recently.

Paolo - could you run your tests with the new snapshot with a product 
count of 14092 (5M), please?


	Andy

(Overall, I'll glad the new checks are showing up these things because 
it's all accidents waiting to happen silently)

On 08/02/11 19:55, Andy Seaborne wrote:
> Even concurrently sent updates should work with Fuseki because it
> applies locking.
>
> The latest BSBM does send updates.
>
> I need to investigate ...
>
> Andy
>
> On 08/02/11 19:22, Paolo Castagna wrote:
>> Hi Benson,
>> thank you, you raised a good point, actually.
>>
>> I need to make sure the BSBM benchmark is not sending any SPARQL Update.
>> It seems to me I got the exception just sending SPARQL queries.
>>
>> However, I'll double check this.
>>
>> Paolo
>>
>> 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.
>>>
>>>
>>> On Tue, Feb 8, 2011 at 1:13 PM, Paolo Castagna
>>> <castagna.lists@googlemail.com> 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
>>>>

Mime
View raw message