You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@jena.apache.org by Jean-Marc Vanel <je...@gmail.com> on 2018/01/09 19:47:04 UTC

java.nio.BufferOverflowException: null when iterating on SELECT result

Hi

I have this stack with Jena 3.6.0 , alas non reproductible .
The calling non-Jena code does this (in Scala ) :
          val results = solutions.iterator.toIterable.map {
            row =>
I saw that *BufferC**hannelFile.java* has changed since 3.6.0, this is now
an interface.

java.nio.BufferOverflowException: null
        at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:214)
~[?:1.8.0_151]
        at sun.nio.ch.IOUtil.read(IOUtil.java:200) ~[?:1.8.0_151]
        at sun.nio.ch.FileChannelImpl.readInternal(FileChannelImpl.java:741)
~[?:1.8.0_151]
        at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:727)
~[?:1.8.0_151]
        at org.apache.jena.tdb.base.file.BufferChannelFile.*read(BufferC*
*hannelFile.java:112)* ~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
        at org.apache.jena.tdb.base.objectfile.ObjectFileStorage.read(ObjectFileStorage.java:339)
~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
        at org.apache.jena.tdb.base.objectfile.ObjectFileWrapper.read(ObjectFileWrapper.java:57)
~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
        at org.apache.jena.tdb.base.objectfile.ObjectFileWrapper.read(ObjectFileWrapper.java:57)
~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
        at org.apache.jena.tdb.base.objectfile.ObjectFileWrapper.read(ObjectFileWrapper.java:57)
~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
        at org.apache.jena.tdb.base.objectfile.ObjectFileWrapper.read(ObjectFileWrapper.java:57)
~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
        at org.apache.jena.tdb.base.objectfile.ObjectFileWrapper.read(ObjectFileWrapper.java:57)
~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
        at org.apache.jena.tdb.lib.NodeLib.fetchDecode(NodeLib.java:78)
~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
        at org.apache.jena.tdb.store.nodetable.NodeTableNative.readNode
FromTable(NodeTableNative.java:186) ~[org.apache.jena.jena-tdb-3.6
.0.jar:3.6.0]
        at org.apache.jena.tdb.store.nodetable.NodeTableNative._retriev
eNodeByNodeId(NodeTableNative.java:111) ~[org.apache.jena.jena-tdb-3.6
.0.jar:3.6.0]
        at org.apache.jena.tdb.store.nodetable.NodeTableNative.getNodeF
orNodeId(NodeTableNative.java:70) ~[org.apache.jena.jena-tdb-3.6
.0.jar:3.6.0]
        at org.apache.jena.tdb.store.nodetable.NodeTableCache._retrieve
NodeByNodeId(NodeTableCache.java:128) ~[org.apache.jena.jena-tdb-3.6
.0.jar:3.6.0]
        at org.apache.jena.tdb.store.nodetable.NodeTableCache.getNodeFo
rNodeId(NodeTableCache.java:82) ~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
        at org.apache.jena.tdb.store.nodetable.NodeTableWrapper.getNode
ForNodeId(NodeTableWrapper.java:50) ~[org.apache.jena.jena-tdb-3.6
.0.jar:3.6.0]
        at org.apache.jena.tdb.store.nodetable.NodeTableInline.getNodeF
orNodeId(NodeTableInline.java:67) ~[org.apache.jena.jena-tdb-3.6
.0.jar:3.6.0]
        at org.apache.jena.tdb.solver.BindingTDB.get1(BindingTDB.java:122)
[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
        at org.apache.jena.sparql.engine.binding.BindingBase.get(BindingBase.java:121)
[org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
        at org.apache.jena.sparql.engine.binding.BindingProjectBase.get1(BindingProjectBase.java:52)
[org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
        at org.apache.jena.sparql.engine.binding.BindingBase.get(BindingBase.java:121)
[org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
        at org.apache.jena.sparql.engine.binding.BindingFactory.materialize(BindingFactory.java:60)
[org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
        at org.apache.jena.tdb.solver.QueryEngineTDB$QueryIteratorMater
ializeBinding.moveToNextBinding(QueryEngineTDB.java:131)
[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.nex
tBinding(QueryIteratorBase.java:156) [org.apache.jena.jena-arq-3.6.
0.jar:3.6.0]
        at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.
moveToNextBinding(QueryIteratorWrapper.java:42)
[org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.nex
tBinding(QueryIteratorBase.java:156) [org.apache.jena.jena-arq-3.6.
0.jar:3.6.0]
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.next(QueryIteratorBase.java:131)
[org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
        at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.next(QueryIteratorBase.java:40)
[org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
        at org.apache.jena.sparql.engine.ResultSetStream.nextBinding(ResultSetStream.java:86)
[org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
        at org.apache.jena.sparql.engine.ResultSetStream.nextSolution(ResultSetStream.java:114)
[org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
        at org.apache.jena.sparql.engine.ResultSetStream.next(ResultSetStream.java:123)
[org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
        at org.apache.jena.sparql.engine.ResultSetCheckCondition.next(R
esultSetCheckCondition.java:61) [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
        at org.apache.jena.sparql.engine.ResultSetCheckCondition.next(R
esultSetCheckCondition.java:33) [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]

       at scala.collection.convert.Wrappers$JIteratorWrapper.next(Wrappers.scala:43)
[org.scala-lang.scala-library-2.11.12.jar:?]
        at scala.collection.Iterator$class.toStream(Iterator.scala:1320)
[org.scala-lang.scala-library-2.11.12.jar:?]
        at scala.collection.AbstractIterator.toStream(Iterator.scala:1334)
[org.scala-lang.scala-library-2.11.12.jar:?]
        at scala.collection.TraversableOnce$class.toIterable(TraversableOnce.scala:296)
[org.scala-lang.scala-library-2.11.12.jar:?]
        at scala.collection.AbstractIterator.toIterable(Iterator.scala:1334)
[org.scala-lang.scala-library-2.11.12.jar:?]
        at deductions.runtime.sparql_cache.SPARQLHelpers$$anonfun$sparq
lSelectQueryVariablesNT$1.apply(SPARQLHelpers.scala:414)

-- 
Jean-Marc Vanel
http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me#subject
<http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me>
Déductions SARL - Consulting, services, training,
Rule-based programming, Semantic Web
+33 (0)6 89 16 29 52
Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui

Re: java.nio.BufferOverflowException: null when iterating on SELECT result

Posted by Andy Seaborne <an...@apache.org>.

On 09/01/18 19:47, Jean-Marc Vanel wrote:
> Hi
> 
> I have this stack with Jena 3.6.0 , alas non reproductible .
> The calling non-Jena code does this (in Scala ) :
>            val results = solutions.iterator.toIterable.map {
>              row =>
> I saw that *BufferC**hannelFile.java* has changed since 3.6.0, this is now
> an interface.

I don't not understand -- BufferChannelFile is not an interface.

There are two such classes - TDB1 and DBOE/TDB2.

The TDB1 used here has not changed in a couple of years.

A corrupted nodetable might cause this.  It's not a mode of failure I 
recall having been reported but it is possibly consistent with that.

Or a concurrency failure.

     Andy

> 
> java.nio.BufferOverflowException: null
>          at java.nio.HeapByteBuffer.put(HeapByteBuffer.java:214)
> ~[?:1.8.0_151]
>          at sun.nio.ch.IOUtil.read(IOUtil.java:200) ~[?:1.8.0_151]
>          at sun.nio.ch.FileChannelImpl.readInternal(FileChannelImpl.java:741)
> ~[?:1.8.0_151]
>          at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:727)
> ~[?:1.8.0_151]
>          at org.apache.jena.tdb.base.file.BufferChannelFile.*read(BufferC*
> *hannelFile.java:112)* ~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
>          at org.apache.jena.tdb.base.objectfile.ObjectFileStorage.read(ObjectFileStorage.java:339)
> ~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
>          at org.apache.jena.tdb.base.objectfile.ObjectFileWrapper.read(ObjectFileWrapper.java:57)
> ~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
>          at org.apache.jena.tdb.base.objectfile.ObjectFileWrapper.read(ObjectFileWrapper.java:57)
> ~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
>          at org.apache.jena.tdb.base.objectfile.ObjectFileWrapper.read(ObjectFileWrapper.java:57)
> ~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
>          at org.apache.jena.tdb.base.objectfile.ObjectFileWrapper.read(ObjectFileWrapper.java:57)
> ~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
>          at org.apache.jena.tdb.base.objectfile.ObjectFileWrapper.read(ObjectFileWrapper.java:57)
> ~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
>          at org.apache.jena.tdb.lib.NodeLib.fetchDecode(NodeLib.java:78)
> ~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
>          at org.apache.jena.tdb.store.nodetable.NodeTableNative.readNode
> FromTable(NodeTableNative.java:186) ~[org.apache.jena.jena-tdb-3.6
> .0.jar:3.6.0]
>          at org.apache.jena.tdb.store.nodetable.NodeTableNative._retriev
> eNodeByNodeId(NodeTableNative.java:111) ~[org.apache.jena.jena-tdb-3.6
> .0.jar:3.6.0]
>          at org.apache.jena.tdb.store.nodetable.NodeTableNative.getNodeF
> orNodeId(NodeTableNative.java:70) ~[org.apache.jena.jena-tdb-3.6
> .0.jar:3.6.0]
>          at org.apache.jena.tdb.store.nodetable.NodeTableCache._retrieve
> NodeByNodeId(NodeTableCache.java:128) ~[org.apache.jena.jena-tdb-3.6
> .0.jar:3.6.0]
>          at org.apache.jena.tdb.store.nodetable.NodeTableCache.getNodeFo
> rNodeId(NodeTableCache.java:82) ~[org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
>          at org.apache.jena.tdb.store.nodetable.NodeTableWrapper.getNode
> ForNodeId(NodeTableWrapper.java:50) ~[org.apache.jena.jena-tdb-3.6
> .0.jar:3.6.0]
>          at org.apache.jena.tdb.store.nodetable.NodeTableInline.getNodeF
> orNodeId(NodeTableInline.java:67) ~[org.apache.jena.jena-tdb-3.6
> .0.jar:3.6.0]
>          at org.apache.jena.tdb.solver.BindingTDB.get1(BindingTDB.java:122)
> [org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.binding.BindingBase.get(BindingBase.java:121)
> [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.binding.BindingProjectBase.get1(BindingProjectBase.java:52)
> [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.binding.BindingBase.get(BindingBase.java:121)
> [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.binding.BindingFactory.materialize(BindingFactory.java:60)
> [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
>          at org.apache.jena.tdb.solver.QueryEngineTDB$QueryIteratorMater
> ializeBinding.moveToNextBinding(QueryEngineTDB.java:131)
> [org.apache.jena.jena-tdb-3.6.0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.nex
> tBinding(QueryIteratorBase.java:156) [org.apache.jena.jena-arq-3.6.
> 0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.iterator.QueryIteratorWrapper.
> moveToNextBinding(QueryIteratorWrapper.java:42)
> [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.nex
> tBinding(QueryIteratorBase.java:156) [org.apache.jena.jena-arq-3.6.
> 0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.next(QueryIteratorBase.java:131)
> [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.iterator.QueryIteratorBase.next(QueryIteratorBase.java:40)
> [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.ResultSetStream.nextBinding(ResultSetStream.java:86)
> [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.ResultSetStream.nextSolution(ResultSetStream.java:114)
> [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.ResultSetStream.next(ResultSetStream.java:123)
> [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.ResultSetCheckCondition.next(R
> esultSetCheckCondition.java:61) [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
>          at org.apache.jena.sparql.engine.ResultSetCheckCondition.next(R
> esultSetCheckCondition.java:33) [org.apache.jena.jena-arq-3.6.0.jar:3.6.0]
> 
>         at scala.collection.convert.Wrappers$JIteratorWrapper.next(Wrappers.scala:43)
> [org.scala-lang.scala-library-2.11.12.jar:?]
>          at scala.collection.Iterator$class.toStream(Iterator.scala:1320)
> [org.scala-lang.scala-library-2.11.12.jar:?]
>          at scala.collection.AbstractIterator.toStream(Iterator.scala:1334)
> [org.scala-lang.scala-library-2.11.12.jar:?]
>          at scala.collection.TraversableOnce$class.toIterable(TraversableOnce.scala:296)
> [org.scala-lang.scala-library-2.11.12.jar:?]
>          at scala.collection.AbstractIterator.toIterable(Iterator.scala:1334)
> [org.scala-lang.scala-library-2.11.12.jar:?]
>          at deductions.runtime.sparql_cache.SPARQLHelpers$$anonfun$sparq
> lSelectQueryVariablesNT$1.apply(SPARQLHelpers.scala:414)
>