Hi Thomas,
That error is indicative of a corrupt database from sometime in the past
- compact traverses the whole database but the problem occured before.
Has the database ever been shared between two containers?
This isn't suppied and while there is code to detect and avoid the
possibility, multiple containers on the same host don't trigger the
checking.
Was this database create and mostly built by a previous version of jena?
Did some other error happen in the past?
Andy
On 03/07/2024 09:25, BOTTINI Thomas wrote:
Thank you Andy!
Unfortunately, the cause is still unclear to me; could someone help me to
decipher this :
Thank you very much, in advance!
08:18:21 INFO Fuseki :: [1587] 200 OK (24 ms)
08:18:29 INFO Admin :: [1588] Compact dataset /iremus
08:18:29 INFO Server :: Task : 9 : Compact
08:18:29 INFO Server :: [Task 9] starts : Compact
08:18:29 INFO Compact :: [1588] >>>> Start compact /iremus
08:18:30 WARN Compact :: [1588] **** Exception in compact
org.apache.jena.tdb2.TDBException: NodeTableTRDF/Read
at
org.apache.jena.tdb2.store.nodetable.NodeTableTRDF.readNodeFromTable(NodeTableTRDF.java:87)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableNative._retrieveNodeByNodeId(NodeTableNative.java:102)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableNative.getNodeForNodeId(NodeTableNative.java:52)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableCache._retrieveNodeByNodeId(NodeTableCache.java:208)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableCache.getNodeForNodeId(NodeTableCache.java:133)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableWrapper.getNodeForNodeId(NodeTableWrapper.java:52)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableInline.getNodeForNodeId(NodeTableInline.java:65)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.lib.TupleLib.quad(TupleLib.java:107)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.lib.TupleLib.quad(TupleLib.java:103)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.lib.TupleLib.lambda$convertToQuads$3(TupleLib.java:52)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.atlas.iterator.Iter$IterMap.lambda$forEachRemaining$0(Iter.java:432)
~[fuseki-server.jar:5.0.0]
at java.base/java.util.Iterator.forEachRemaining(Unknown Source) ~[?:?]
at org.apache.jena.atlas.iterator.Iter$IterMap.forEachRemaining(Iter.java:432)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.atlas.iterator.IteratorWrapper.forEachRemaining(IteratorWrapper.java:52)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.sys.CopyDSG.lambda$copy$0(CopyDSG.java:38)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.system.Txn.exec(Txn.java:77) ~[fuseki-server.jar:5.0.0]
at org.apache.jena.system.Txn.executeWrite(Txn.java:125)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.sys.CopyDSG.lambda$copy$1(CopyDSG.java:36)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.system.Txn.exec(Txn.java:77) ~[fuseki-server.jar:5.0.0]
at org.apache.jena.system.Txn.executeRead(Txn.java:115)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.sys.CopyDSG.copy(CopyDSG.java:35)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.sys.DatabaseOps.lambda$compaction$3(DatabaseOps.java:431)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.dboe.transaction.txn.TransactionalSystemControl.execReadOnlyDatabase(TransactionalSystemControl.java:45)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.sys.DatabaseOps.compaction(DatabaseOps.java:419)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.sys.DatabaseOps.compact(DatabaseOps.java:359)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.DatabaseMgr.compact(DatabaseMgr.java:81)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.fuseki.ctl.ActionCompact$CompactTask.run(ActionCompact.java:109)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.fuseki.async.AsyncPool.lambda$submit$0(AsyncPool.java:66)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.fuseki.async.AsyncTask.call(AsyncTask.java:100)
~[fuseki-server.jar:5.0.0]
at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
~[?:?]
at java.base/java.lang.Thread.run(Unknown Source) [?:?]
Caused by: org.apache.thrift.protocol.TProtocolException: Unrecognized type 0
at org.apache.thrift.protocol.TProtocolUtil.skip(TProtocolUtil.java:140)
~[fuseki-server.jar:5.0.0]
at org.apache.thrift.protocol.TProtocolUtil.skip(TProtocolUtil.java:53)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.riot.thrift.wire.RDF_Term.standardSchemeReadValue(RDF_Term.java:432)
~[fuseki-server.jar:5.0.0]
at org.apache.thrift.TUnion$TUnionStandardScheme.read(TUnion.java:238)
~[fuseki-server.jar:5.0.0]
at org.apache.thrift.TUnion$TUnionStandardScheme.read(TUnion.java:227)
~[fuseki-server.jar:5.0.0]
at org.apache.thrift.TUnion.read(TUnion.java:145) ~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableTRDF.readNodeFromTable(NodeTableTRDF.java:82)
~[fuseki-server.jar:5.0.0]
... 32 more
08:18:30 ERROR Server :: Exception in task 9 execution
org.apache.jena.tdb2.TDBException: NodeTableTRDF/Read
at
org.apache.jena.tdb2.store.nodetable.NodeTableTRDF.readNodeFromTable(NodeTableTRDF.java:87)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableNative._retrieveNodeByNodeId(NodeTableNative.java:102)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableNative.getNodeForNodeId(NodeTableNative.java:52)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableCache._retrieveNodeByNodeId(NodeTableCache.java:208)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableCache.getNodeForNodeId(NodeTableCache.java:133)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableWrapper.getNodeForNodeId(NodeTableWrapper.java:52)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableInline.getNodeForNodeId(NodeTableInline.java:65)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.lib.TupleLib.quad(TupleLib.java:107)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.lib.TupleLib.quad(TupleLib.java:103)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.lib.TupleLib.lambda$convertToQuads$3(TupleLib.java:52)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.atlas.iterator.Iter$IterMap.lambda$forEachRemaining$0(Iter.java:432)
~[fuseki-server.jar:5.0.0]
at java.base/java.util.Iterator.forEachRemaining(Unknown Source) ~[?:?]
at org.apache.jena.atlas.iterator.Iter$IterMap.forEachRemaining(Iter.java:432)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.atlas.iterator.IteratorWrapper.forEachRemaining(IteratorWrapper.java:52)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.sys.CopyDSG.lambda$copy$0(CopyDSG.java:38)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.system.Txn.exec(Txn.java:77) ~[fuseki-server.jar:5.0.0]
at org.apache.jena.system.Txn.executeWrite(Txn.java:125)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.sys.CopyDSG.lambda$copy$1(CopyDSG.java:36)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.system.Txn.exec(Txn.java:77) ~[fuseki-server.jar:5.0.0]
at org.apache.jena.system.Txn.executeRead(Txn.java:115)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.sys.CopyDSG.copy(CopyDSG.java:35)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.sys.DatabaseOps.lambda$compaction$3(DatabaseOps.java:431)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.dboe.transaction.txn.TransactionalSystemControl.execReadOnlyDatabase(TransactionalSystemControl.java:45)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.sys.DatabaseOps.compaction(DatabaseOps.java:419)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.sys.DatabaseOps.compact(DatabaseOps.java:359)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.tdb2.DatabaseMgr.compact(DatabaseMgr.java:81)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.fuseki.ctl.ActionCompact$CompactTask.run(ActionCompact.java:109)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.fuseki.async.AsyncPool.lambda$submit$0(AsyncPool.java:66)
~[fuseki-server.jar:5.0.0]
at org.apache.jena.fuseki.async.AsyncTask.call(AsyncTask.java:100)
~[fuseki-server.jar:5.0.0]
at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
~[?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
~[?:?]
at java.base/java.lang.Thread.run(Unknown Source) [?:?]
Caused by: org.apache.thrift.protocol.TProtocolException: Unrecognized type 0
at org.apache.thrift.protocol.TProtocolUtil.skip(TProtocolUtil.java:140)
~[fuseki-server.jar:5.0.0]
at org.apache.thrift.protocol.TProtocolUtil.skip(TProtocolUtil.java:53)
~[fuseki-server.jar:5.0.0]
at
org.apache.jena.riot.thrift.wire.RDF_Term.standardSchemeReadValue(RDF_Term.java:432)
~[fuseki-server.jar:5.0.0]
at org.apache.thrift.TUnion$TUnionStandardScheme.read(TUnion.java:238)
~[fuseki-server.jar:5.0.0]
at org.apache.thrift.TUnion$TUnionStandardScheme.read(TUnion.java:227)
~[fuseki-server.jar:5.0.0]
at org.apache.thrift.TUnion.read(TUnion.java:145) ~[fuseki-server.jar:5.0.0]
at
org.apache.jena.tdb2.store.nodetable.NodeTableTRDF.readNodeFromTable(NodeTableTRDF.java:82)
~[fuseki-server.jar:5.0.0]
---
Thomas Bottini
IReMus — Institut de Recherche en Musicologie UMR 8223
________________________________
De : Andy Seaborne <a...@apache.org>
Envoyé : mardi 2 juillet 2024 22:34:32
À : users@jena.apache.org
Objet : Re: Docker & compacting a dataset
Hi Thomas,
There should be a log file somewhere and that usually has more information.
Andy
On 02/07/2024 12:47, BOTTINI Thomas wrote:
Hello ;
I run fuseki with a Docker compose and a Docker image (inspired by
https://hub.docker.com/r/secoresearch/fuseki/).
Here is a fragment of the docker-compose.yml :
fuseki:
build: ./fuseki-docker
ports:
- 3030:3030
volumes:
- ./fuseki-data:/fuseki-base/databases
- ./fuseki-configuration:/fuseki-base/configuration
I want/need/try to compact a dataset :
$ http POST localhost:3030/$/compact/iremus?deleteOld=true -a admin:XYZ
HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Length: 56
Content-Type: application/json;charset=utf-8
Date: Tue, 02 Jul 2024 11:43:11 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Fuseki-Request-Id: 30
Location: /$/compact/iremus/4
Set-Cookie: JSESSIONID=node01py6j2rduedd7jwqpre5qkctr29.node0; Path=/
Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Mon, 01-Jul-2024
11:43:11 GMT; SameSite=lax
Vary: Accept-Encoding, Origin
{
"requestId": 30,
"taskId": "4"
}
The task fails immediately :
$ http localhost:3030/$/tasks -a admin:XYZ
{
"finished": "2024-07-02T11:43:11.487+00:00",
"started": "2024-07-02T11:43:11.069+00:00",
"success": false,
"task": "Compact",
"taskId": "4"
}
How can I find the reasons of this failure? Could it be something related to
the Docker volume?
Thank you very much, in advance,
Best regards
--
💾 Thomas Bottini
Institut de Recherche en Musicologie — IReMus UMR822