Re: NodeTableTRDF/Read exception

2022-03-21 Thread Andy Seaborne
The only time I have seen anything similar to this is on Android where 
something other process is messing about the files. TDB is not proof 
again other processes accessing the same files, including with shared 
network drives where different computers access the same filesystem.


Andy

On 21/03/2022 11:39, Mikael Pesonen wrote:


Got this again after few days of little usage after TDB2 was rebuilt 
from empty. Would you suggest this is hw error? No possibility that its 
Jena error?


On 28/05/2021 17.25, Andy Seaborne wrote:



On 28/05/2021 14:59, Mikael Pesonen wrote:


I should try some older Jena/Fuseki version?


Yes.

Also
 - run on different hardware.
 - run multiple times
 - look at the data and see if anything unusual is in it.
 etc etc




On 28/05/2021 16.49, Andy Seaborne wrote:



On 28/05/2021 14:03, Mikael Pesonen wrote:


No this is the fresh db, started from empty today. And plenty of 
disk space.


So it's repeatble.

With no Minimal, Verifiable, Complete Example, it'll have to be an 
on-site investigation. Try different versions.


    Andy



On 28/05/2021 15.58, Andy Seaborne wrote:

Why are you adding data to a broken database?

On 28/05/2021 12:02, Mikael Pesonen wrote:


Actually now it happened again. Same size, about 80MB of turtle, 
imported without warnings this time, but reading the graph fails 
with this exception.


13:59:39 WARN  Fuseki  :: [44] RC = 500 : NodeTableTRDF/Read
org.apache.jena.tdb2.TDBException: NodeTableTRDF/Read
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableTRDF.readNodeFromTable(NodeTableTRDF.java:87) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableNative._retrieveNodeByNodeId(NodeTableNative.java:103) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableNative.getNodeForNodeId(NodeTableNative.java:52) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableCache._retrieveNodeByNodeId(NodeTableCache.java:206) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableCache.getNodeForNodeId(NodeTableCache.java:131) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableWrapper.getNodeForNodeId(NodeTableWrapper.java:52) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableInline.getNodeForNodeId(NodeTableInline.java:65) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.lib.TupleLib.quad(TupleLib.java:113) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.lib.TupleLib.quad(TupleLib.java:108) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.lib.TupleLib.lambda$convertToQuads$3(TupleLib.java:53) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.atlas.iterator.Iter$2.next(Iter.java:352) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.atlas.iterator.IteratorWrapper.next(IteratorWrapper.java:36) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.dboe.transaction.txn.IteratorTxnTracker.next(IteratorTxnTracker.java:39) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.atlas.iterator.Iter$2.next(Iter.java:352) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.atlas.iterator.Iter.next(Iter.java:1072) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.util.iterator.WrappedIterator.next(WrappedIterator.java:94) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.util.iterator.WrappedIterator.next(WrappedIterator.java:94) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.mem.TrackingTripleIterator.next(TrackingTripleIterator.java:47) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.mem.TrackingTripleIterator.next(TrackingTripleIterator.java:31) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.hasNextBinding(QueryIterTriplePattern.java:145) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:74) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIterBlockTriplesStar.hasNextBinding(QueryIterBlockTriplesStar.java:54) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:101) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65) 
~[fuseki-server.jar:3.17.0]
 at 
org.a

Re: NodeTableTRDF/Read exception

2022-03-21 Thread Mikael Pesonen



Got this again after few days of little usage after TDB2 was rebuilt 
from empty. Would you suggest this is hw error? No possibility that its 
Jena error?


On 28/05/2021 17.25, Andy Seaborne wrote:



On 28/05/2021 14:59, Mikael Pesonen wrote:


I should try some older Jena/Fuseki version?


Yes.

Also
 - run on different hardware.
 - run multiple times
 - look at the data and see if anything unusual is in it.
 etc etc




On 28/05/2021 16.49, Andy Seaborne wrote:



On 28/05/2021 14:03, Mikael Pesonen wrote:


No this is the fresh db, started from empty today. And plenty of 
disk space.


So it's repeatble.

With no Minimal, Verifiable, Complete Example, it'll have to be an 
on-site investigation. Try different versions.


    Andy



On 28/05/2021 15.58, Andy Seaborne wrote:

Why are you adding data to a broken database?

On 28/05/2021 12:02, Mikael Pesonen wrote:


Actually now it happened again. Same size, about 80MB of turtle, 
imported without warnings this time, but reading the graph fails 
with this exception.


13:59:39 WARN  Fuseki  :: [44] RC = 500 : NodeTableTRDF/Read
org.apache.jena.tdb2.TDBException: NodeTableTRDF/Read
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableTRDF.readNodeFromTable(NodeTableTRDF.java:87) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableNative._retrieveNodeByNodeId(NodeTableNative.java:103) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableNative.getNodeForNodeId(NodeTableNative.java:52) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableCache._retrieveNodeByNodeId(NodeTableCache.java:206) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableCache.getNodeForNodeId(NodeTableCache.java:131) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableWrapper.getNodeForNodeId(NodeTableWrapper.java:52) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.store.nodetable.NodeTableInline.getNodeForNodeId(NodeTableInline.java:65) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.lib.TupleLib.quad(TupleLib.java:113) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.lib.TupleLib.quad(TupleLib.java:108) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.tdb2.lib.TupleLib.lambda$convertToQuads$3(TupleLib.java:53) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.atlas.iterator.Iter$2.next(Iter.java:352) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.atlas.iterator.IteratorWrapper.next(IteratorWrapper.java:36) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.dboe.transaction.txn.IteratorTxnTracker.next(IteratorTxnTracker.java:39) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.atlas.iterator.Iter$2.next(Iter.java:352) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.atlas.iterator.Iter.next(Iter.java:1072) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.util.iterator.WrappedIterator.next(WrappedIterator.java:94) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.util.iterator.WrappedIterator.next(WrappedIterator.java:94) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.mem.TrackingTripleIterator.next(TrackingTripleIterator.java:47) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.mem.TrackingTripleIterator.next(TrackingTripleIterator.java:31) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIterTriplePattern$TripleMapper.hasNextBinding(QueryIterTriplePattern.java:145) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:74) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIterBlockTriplesStar.hasNextBinding(QueryIterBlockTriplesStar.java:54) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:101) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.hasNextBinding(QueryIterRepeatApply.java:65) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIteratorBase.hasNext(QueryIteratorBase.java:114) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply.makeNextStage(QueryIterRepeatApply.java:101) 
~[fuseki-server.jar:3.17.0]
 at 
org.apache.jena.sparql.engine.iterator.QueryIterRepeatApply

Re: fuseki-4.4.0: --file option forces read-only mode

2022-03-21 Thread Andy Seaborne

Hi olivier,

No reason I can think of except being clear that updates to the file 
will not be written back to the file.


Given the user has explicitly given "--update", allowing update seems 
quite reasonable.


Recorded:
https://github.com/apache/jena/issues/1228

(we now have github issues enabled for the codebase - use JIRA or GH issues)

Andy

On 21/03/2022 02:41, Olivier Dameron wrote:

Hello,
    When I run
${FUSEKI_HOME}/fuseki-server --file=someFile.ttl --update /dataset

the log displays:
INFO Server :: Dataset: in-memory: load file: someFile.ttl
INFO Server :: Running in read-only mode for /dataset
...

and indeed, update queries are not possible in spite of the --update 
option:

INFO Fuseki :: [3] POST http://localhost:3030/dataset/update
INFO Fuseki :: [3] No Fuseki dispatch /dataset/update


Is it the normal behavior?
The --help option displays
--mem Create an in-memory, non-persistent dataset for the server
--file=FILE Create an in-memory, non-persistent dataset for the server, 
initialised with the contents of the file

--update Allow updates (via SPARQL Update and SPARQL HTTP Update)
So I do not see any indication that --file should be read-only


Note that I managed to get the update working by
1. running the server with an empty dataset
${FUSEKI_HOME}/fuseki-server --mem --update /dataset


yes - not much point having a read-only empty dataset.


2. manually uploading someFile.ttl via the GUI

but doing things manually is cumbersome :-)

Thank you
olivier