Return-Path: Delivered-To: apmail-incubator-jena-users-archive@minotaur.apache.org Received: (qmail 61205 invoked from network); 3 Feb 2011 14:00:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 3 Feb 2011 14:00:26 -0000 Received: (qmail 59461 invoked by uid 500); 3 Feb 2011 14:00:26 -0000 Delivered-To: apmail-incubator-jena-users-archive@incubator.apache.org Received: (qmail 59400 invoked by uid 500); 3 Feb 2011 14:00:24 -0000 Mailing-List: contact jena-users-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jena-users@incubator.apache.org Delivered-To: mailing list jena-users@incubator.apache.org Received: (qmail 59392 invoked by uid 99); 3 Feb 2011 14:00:23 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Feb 2011 14:00:23 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of bimargulies@gmail.com designates 74.125.83.47 as permitted sender) Received: from [74.125.83.47] (HELO mail-gw0-f47.google.com) (74.125.83.47) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 03 Feb 2011 14:00:18 +0000 Received: by gwaa12 with SMTP id a12so473628gwa.6 for ; Thu, 03 Feb 2011 05:59:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type:content-transfer-encoding; bh=drBYxHo4z/9v21hB5wLTzKsc98xGmnhtbq6KHQsaZLU=; b=JI7GG2IYsfAHGMPaMGpiD5zJ7mXJl45yJqWAD+CsTpNh/zLLdfFxrK8JwLopi29IUH idemTBG3riQQCvgduqUMIPMIx3/ZA2rr0BU5EObHHIanDbVtyt9JcI+zlr7QXHed3Ebf smsoqVPW19wDi0EHfDi/vEKmzZX0o1Ce0u2XM= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=Mj3LRZ9DhaGN1IuYzjex2BmDzXiAOqnEZPIGNNVXKSMkC+B2zIuHZH+iQzVP0dvT9w 2C4BGnfbrFNaWMsyfJfugC+1VHYQumCRfoIeZ4xTG7gkFiDn9uv9CqClPjGYO5o7yKbU MkwwW7b0yKW5rwExCKjVBvQagdfxEUY3ZBkXw= MIME-Version: 1.0 Received: by 10.100.142.9 with SMTP id p9mr6839972and.249.1296741597025; Thu, 03 Feb 2011 05:59:57 -0800 (PST) Received: by 10.100.125.7 with HTTP; Thu, 3 Feb 2011 05:59:56 -0800 (PST) In-Reply-To: <4D4A766E.9060808@epimorphics.com> References: <4D4A766E.9060808@epimorphics.com> Date: Thu, 3 Feb 2011 08:59:56 -0500 Message-ID: Subject: Re: current tdb shapshot has new problem From: Benson Margulies To: jena-users@incubator.apache.org Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable This is very interesting. It's a synchronization bug of mine which never happens with 0.8.9 and is perfectly reproducible with the snapshot. I have a 'background sync' thread. So, the steps are something like: load a new graph into the database with some ontology. try to run my query. in parallel, the sync thread calls TDB.sync, with no synchronization between the thread running the query and the sync. *blam* I assume that this is entirely my problem unless you tell me otherwise, in which case I'll attach the small test case I just concocted. On Thu, Feb 3, 2011 at 4:33 AM, Andy Seaborne wrote: > Works for me (on the test data from before). > > tdbloader --loc DB ~/Desktop/1k_news.nq.gz > tdbquery --loc=3DDB --file=3DQ.rq > =3D> result model. > > Iterators count as read operations - you can't update a model and continu= e > to iterate over results (which is what CONSTRUCT is doing). > > sync'ing a dataset is a write operation. > > =C2=A0 =C2=A0 =C2=A0 =C2=A0Andy > > PS The file extension for SPARQL queries is ".rq". =C2=A0The extension fo= r SPARQL > Update is ".ru" (where "is" is defined to be "when the W3C registers the > MIME type"). > > > On 03/02/11 02:02, Benson Margulies wrote: >> >> Jira shortly I hope. >> >> Caused by: java.util.ConcurrentModificationException: Iterator: >> started at 266532, now 266533 >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.tdb.sys.ConcurrencyPolicyMRSW.policyError(ConcurrencyPol= icyMRSW.java:127) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.tdb.sys.ConcurrencyPolicyMRSW.access$000(ConcurrencyPoli= cyMRSW.java:18) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.tdb.sys.ConcurrencyPolicyMRSW$IteratorCheckNotConcurrent= .checkCourrentModification(ConcurrencyPolicyMRSW.java:90) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.tdb.sys.ConcurrencyPolicyMRSW$IteratorCheckNotConcurrent= .hasNext(ConcurrencyPolicyMRSW.java:97) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.openjena.atlas.iterator.Iter$4.hasNext= (Iter.java:262) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.openjena.atlas.iterator.Iter$3.hasNext= (Iter.java:152) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.openjena.atlas.iterator.Iter.hasNext(I= ter.java:596) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.openjena.atlas.iterator.RepeatApplyIterator.hasNext(RepeatApplyItera= tor.java:46) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at org.openjena.atlas.iterator.Iter$4.hasNext= (Iter.java:262) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterPlainWrapper.hasNextBind= ing(QueryIterPlainWrapper.java:42) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIt= eratorBase.java:66) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterProcessBinding.hasNextBi= nding(QueryIterProcessBinding.java:48) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIt= eratorBase.java:66) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterConcat.hasNextBinding(Qu= eryIterConcat.java:70) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIt= eratorBase.java:66) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBindi= ng(QueryIterRepeatApply.java:57) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIt= eratorBase.java:66) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterProcessBinding.hasNextBi= nding(QueryIterProcessBinding.java:48) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIt= eratorBase.java:66) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterDefaulting.hasNextBindin= g(QueryIterDefaulting.java:43) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIt= eratorBase.java:66) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBindi= ng(QueryIterRepeatApply.java:57) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIt= eratorBase.java:66) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBindi= ng(QueryIteratorWrapper.java:28) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIt= eratorBase.java:66) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBindi= ng(QueryIteratorWrapper.java:28) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIt= eratorBase.java:66) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.hp.hpl.jena.sparql.engine.QueryExecutionBase.execConstruct(QueryExec= utionBase.java:117) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.basistech.jug.rdfdb.jena.JenaStore.executeConstructQuery(JenaStore.j= ava:127) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.basistech.jug.rdfdb.jena.QueryManager.runConstructQuery(QueryManager= .java:59) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> com.basistech.jug.rdfdb.service.query.QueryService.constructQuery(QueryS= ervice.java:166) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at sun.reflect.NativeMethodAccessorImpl.invok= e0(Native Method) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav= a:39) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor= Impl.java:25) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at java.lang.reflect.Method.invoke(Method.jav= a:597) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(Abstrac= tInvoker.java:173) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0at >> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.ja= va:89) >> =C2=A0 =C2=A0 =C2=A0 =C2=A0... 29 more >