[ 
https://issues.apache.org/jira/browse/CLEREZZA-792?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13792863#comment-13792863
 ] 

Reto Bachmann-Gmür edited comment on CLEREZZA-792 at 10/11/13 5:47 PM:
-----------------------------------------------------------------------

The problem seems to be that TdbTcProvo
ider.syncWithFileSystem synchronization is independent of the locking of the 
MGraphs.


was (Author: reto):
The problem seems to be that TdbTcProvoder.syncWithFileSystem synchronization 
is independent of the locking of the MGraphs.

> jena tdb.storage: test failure due to ConcurrentModificationExcveption
> ----------------------------------------------------------------------
>
>                 Key: CLEREZZA-792
>                 URL: https://issues.apache.org/jira/browse/CLEREZZA-792
>             Project: Clerezza
>          Issue Type: Bug
>            Reporter: Reto Bachmann-Gmür
>
> The failure doesn't always occur. TODO: check locking in 
> LockableMGraphWrapper.size, possibly add some specifc locking in 
> JenaGraphAdaptor.size
> -------------------------------------------------------------------------------
> Test set: org.apache.clerezza.rdf.jena.tdb.storage.MultiThreadedTest
> -------------------------------------------------------------------------------
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 120.143 sec 
> <<< FAILURE!
> perform(org.apache.clerezza.rdf.jena.tdb.storage.MultiThreadedTest)  Time 
> elapsed: 120.14 sec  <<< ERROR!
> java.util.ConcurrentModificationException: Iterator: started at 81908, now 
> 81909
>       at 
> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.policyError(DatasetControlMRSW.java:157)
>       at 
> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.access$000(DatasetControlMRSW.java:32)
>       at 
> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW$IteratorCheckNotConcurrent.checkCourrentModification(DatasetControlMRSW.java:110)
>       at 
> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW$IteratorCheckNotConcurrent.hasNext(DatasetControlMRSW.java:118)
>       at org.apache.jena.atlas.iterator.Iter.count(Iter.java:476)
>       at 
> com.hp.hpl.jena.tdb.store.GraphTDBBase.graphBaseSize(GraphTDBBase.java:159)
>       at com.hp.hpl.jena.graph.impl.GraphBase.size(GraphBase.java:344)
>       at 
> org.apache.clerezza.rdf.jena.storage.JenaGraphAdaptor.size(JenaGraphAdaptor.java:70)
>       at 
> org.apache.clerezza.rdf.core.impl.util.PrivilegedTripleCollectionWrapper$2.run(PrivilegedTripleCollectionWrapper.java:66)
>       at 
> org.apache.clerezza.rdf.core.impl.util.PrivilegedTripleCollectionWrapper$2.run(PrivilegedTripleCollectionWrapper.java:62)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at 
> org.apache.clerezza.rdf.core.impl.util.PrivilegedTripleCollectionWrapper.size(PrivilegedTripleCollectionWrapper.java:62)
>       at 
> org.apache.clerezza.rdf.core.access.LockableMGraphWrapper.size(LockableMGraphWrapper.java:97)
>       at 
> org.apache.clerezza.rdf.jena.tdb.storage.MultiThreadedTest.perform(MultiThreadedTest.java:129)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:601)
>       at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>       at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>       at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>       at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>       at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
>       at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
>       at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
>       at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
>       at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
>       at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
>       at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
>       at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
>       at 
> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>       at 
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>       at 
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>       at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:601)
>       at 
> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
>       at 
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
> On another run I have no failure but the following output:
> Exception in thread "Thread-122" Exception in thread "Thread-157" 
> java.util.ConcurrentModificationException: Reader = 0, Writer = 2
>       at 
> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.policyError(DatasetControlMRSW.java:157)
>       at 
> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.policyError(DatasetControlMRSW.java:152)
>       at 
> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.checkConcurrency(DatasetControlMRSW.java:81)
>       at 
> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.startUpdate(DatasetControlMRSW.java:60)
>       at 
> com.hp.hpl.jena.tdb.nodetable.NodeTupleTableConcrete.startWrite(NodeTupleTableConcrete.java:64)
>       at 
> com.hp.hpl.jena.tdb.nodetable.NodeTupleTableConcrete.sync(NodeTupleTableConcrete.java:255)
>       at com.hp.hpl.jena.tdb.store.TableBase.sync(TableBase.java:52)
>       at 
> com.hp.hpl.jena.tdb.store.DatasetGraphTDB.sync(DatasetGraphTDB.java:285)
>       at 
> com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction.syncIfNotTransactional(DatasetGraphTransaction.java:146)
>       at com.hp.hpl.jena.tdb.TDB.sync(TDB.java:152)
>       at com.hp.hpl.jena.tdb.TDB.sync(TDB.java:134)
>       at 
> org.apache.clerezza.rdf.jena.tdb.storage.TdbTcProvider.syncWithFileSystem(TdbTcProvider.java:399)
>       at 
> org.apache.clerezza.rdf.jena.tdb.storage.TdbTcProvider$SyncThread.run(TdbTcProvider.java:110)
> java.util.ConcurrentModificationException: Reader = 0, Writer = 2
>       at 
> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.policyError(DatasetControlMRSW.java:157)
>       at 
> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.policyError(DatasetControlMRSW.java:152)
>       at 
> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.checkConcurrency(DatasetControlMRSW.java:81)
>       at 
> com.hp.hpl.jena.tdb.sys.DatasetControlMRSW.startUpdate(DatasetControlMRSW.java:60)
>       at 
> com.hp.hpl.jena.tdb.nodetable.NodeTupleTableConcrete.startWrite(NodeTupleTableConcrete.java:64)
>       at 
> com.hp.hpl.jena.tdb.nodetable.NodeTupleTableConcrete.addRow(NodeTupleTableConcrete.java:81)
>       at com.hp.hpl.jena.tdb.store.TripleTable.add(TripleTable.java:58)
>       at com.hp.hpl.jena.tdb.store.TripleTable.add(TripleTable.java:53)
>       at 
> com.hp.hpl.jena.tdb.store.GraphTriplesTDB._performAdd(GraphTriplesTDB.java:55)
>       at 
> com.hp.hpl.jena.tdb.store.GraphTDBBase.performAdd(GraphTDBBase.java:80)
>       at com.hp.hpl.jena.graph.impl.GraphBase.add(GraphBase.java:202)
>       at 
> org.apache.clerezza.rdf.jena.storage.JenaGraphAdaptor.performAdd(JenaGraphAdaptor.java:144)
>       at 
> org.apache.clerezza.rdf.core.impl.AbstractTripleCollection.add(AbstractTripleCollection.java:112)
>       at 
> org.apache.clerezza.rdf.core.impl.AbstractTripleCollection.add(AbstractTripleCollection.java:46)
>       at 
> org.apache.clerezza.rdf.core.impl.util.PrivilegedTripleCollectionWrapper$8.run(PrivilegedTripleCollectionWrapper.java:132)
>       at 
> org.apache.clerezza.rdf.core.impl.util.PrivilegedTripleCollectionWrapper$8.run(PrivilegedTripleCollectionWrapper.java:128)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at 
> org.apache.clerezza.rdf.core.impl.util.PrivilegedTripleCollectionWrapper.add(PrivilegedTripleCollectionWrapper.java:128)
>       at 
> org.apache.clerezza.rdf.core.impl.util.PrivilegedTripleCollectionWrapper.add(PrivilegedTripleCollectionWrapper.java:40)
>       at 
> org.apache.clerezza.rdf.core.access.LockableMGraphWrapper.add(LockableMGraphWrapper.java:168)
>       at 
> org.apache.clerezza.rdf.core.access.LockableMGraphWrapper.add(LockableMGraphWrapper.java:42)
>       at 
> org.apache.clerezza.rdf.jena.tdb.storage.MultiThreadedTest$TestThread.run(MultiThreadedTest.java:83)



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to