Hi guys,
in one of our regular test runs, a multi-threaded test barfed once (but
then not again and we have never seen it before even though we run these
tests regularly). I am not sure if we accidentally bumped into a true tdb
bug or whether we are doing something unsafe on our side. The exception
occurred inside a read transaction while iterating over a ResultSet. You
can assume that othe threads were also in read and/or write transactions.
I have no idea how to produce a test case to replicate this, so my
starting question will be if anyone can give a broad explanation of the
meaning of the exception. Our tests were running Jena 2.7.4. I may open a
Jira issue as well.
thanks
Simon
Caused by: com.hp.hpl.jena.tdb.base.StorageException: RecordRangeIterator:
records not strictly increasing:
00000000000000af000000000003e9f90000000000250aaa000000000024ea3d //
00000000000000af000000000003e93700000000002792790000000000277240
at
com.hp.hpl.jena.tdb.base.recordbuffer.RecordRangeIterator.hasNext(RecordRangeIterator.java:124)
at org.openjena.atlas.iterator.Iter$4.hasNext(Iter.java:295)
at
com.hp.hpl.jena.tdb.sys.DatasetControlMRSW$IteratorCheckNotConcurrent.hasNext(DatasetControlMRSW.java:119)
at org.openjena.atlas.iterator.Iter$3.hasNext(Iter.java:181)
at org.openjena.atlas.iterator.Iter$6.hasNext(Iter.java:386)
at org.openjena.atlas.iterator.Iter$3.hasNext(Iter.java:181)
at org.openjena.atlas.iterator.Iter$4.hasNext(Iter.java:295)
at org.openjena.atlas.iterator.Iter$3.hasNext(Iter.java:181)
at org.openjena.atlas.iterator.Iter.hasNext(Iter.java:825)
at
org.openjena.atlas.iterator.RepeatApplyIterator.hasNext(RepeatApplyIterator.java:58)
at
org.openjena.atlas.iterator.RepeatApplyIterator.hasNext(RepeatApplyIterator.java:46)
at
org.openjena.atlas.iterator.RepeatApplyIterator.hasNext(RepeatApplyIterator.java:46)
at org.openjena.atlas.iterator.Iter$4.hasNext(Iter.java:295)
at
com.hp.hpl.jena.sparql.engine.iterator.QueryIterPlainWrapper.hasNextBinding(QueryIterPlainWrapper.java:54)
at
com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:112)
at
com.hp.hpl.jena.sparql.engine.iterator.QueryIterConvert.hasNextBinding(QueryIterConvert.java:59)
at
com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:112)
at
com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:40)
at
com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:112)
at
com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorWrapper.hasNextBinding(QueryIteratorWrapper.java:40)
at
com.hp.hpl.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:112)
at
com.hp.hpl.jena.sparql.engine.ResultSetStream.hasNext(ResultSetStream.java:72)
at
com.ibm.team.jfs.rdf.internal.jena.InternalResultSet.retrieveAllBindings(InternalResultSet.java:47)
at
com.ibm.team.jfs.rdf.internal.jena.InternalResultSet.retrieveFirstPage(InternalResultSet.java:54)
at
com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider.renderSelect(JenaTxTdbProvider.java:1887)
at
com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider.performSelect(JenaTxTdbProvider.java:1611)
at
com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider$21.run(JenaTxTdbProvider.java:1757)
at
com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider$21.run(JenaTxTdbProvider.java:1)
at
com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider.storeOperation(JenaTxTdbProvider.java:2208)
... 55 more