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

Reply via email to