On Wed, Nov 6, 2013 at 2:57 PM, Andy Seaborne <[email protected]> wrote:

> On 06/11/13 09:33, Reto Bachmann-Gmür wrote:
>
>> Hello,
>>
>> I've been encountering the following exception. I think it happened after
>> the instance was killed. WHat does it mean? How to fix it?
>>
>> org.apache.jena.atlas.lib.InternalErrorException: Invalid id node for
>> object (null node): ([000000000000025E], [000000000000019C],
>> [0000000000000321])
>>          at com.hp.hpl.jena.tdb.lib.TupleLib.triple(TupleLib.java:139)
>>          at com.hp.hpl.jena.tdb.lib.TupleLib.triple(TupleLib.java:114)
>>          at com.hp.hpl.jena.tdb.lib.TupleLib.access$000(TupleLib.java:45)
>>          at com.hp.hpl.jena.tdb.lib.TupleLib$3.convert(TupleLib.java:76)
>>          at com.hp.hpl.jena.tdb.lib.TupleLib$3.convert(TupleLib.java:72)
>>          at org.apache.jena.atlas.iterator.Iter$4.next(Iter.java:317)
>>          at org.apache.jena.atlas.iterator.Iter$4.next(Iter.java:317)
>>          at org.apache.jena.atlas.iterator.Iter$4.next(Iter.java:317)
>>          at org.apache.jena.atlas.iterator.Iter.next(Iter.java:915)
>>          at
>> com.hp.hpl.jena.util.iterator.WrappedIterator.next(
>> WrappedIterator.java:94)
>>
>> Cheers,
>> Reto
>>
>>
> (version?)
>

2.1.1 (core+arq), 1.0.0 (tdb +iri)

>
> There are two possible causes I can think of - I can't tell which it is;
> it may be something else.
>
> 1/ No transactions.  There were un-synced updates and you were unlucky.
>

What the framework is supposed to ensure is that no two add/deletes  happen
at the same time (on the same dataset). Also no add/delete happens at the
same time as a read. It does not guarantee that some code uses an iterator
without proper locking, so the case where one is likely to get a
concurrentModificationException.

Would this be enough to keep that triplestore safe?

>
> This is not most common exception that occurs in that situation; more
> common is complaints from the node table.
>
> Were you deleting stuff around the time of the instance death?  There is a
> triple/quad in the index where there is no RDF term for the object in the
> NodeTable.
>

> Bad news: The database is damaged on disk.
>

Any rescue tools/path?

When I try to serialize a graph (as n-triples) it stops somewhere in the
middle ot a triple. Not always at the same point.

Cheers,
Reto

>
> 2/ An iterator has been passed across a transaction boundary (e.g. from
> one thread to another).  I would hope that passing it across a transaction
> boundary in the same thread would have been signalled but you may have
> found another devious way to do that.
>
> The database is not damaged on disk.
>
> But as you said the instance was killed, (1) looks more likely. Sorry.
>
>         Andy
>

Reply via email to