On 08/02/18 08:23, Jean-Marc Vanel wrote:
Hi On my laptop, I fixed my quad dump, reloaded it, and then I had this . I cut the bottom of stack. I think the rw() generic transaction function in Banana-RDF could be improved, and in my code I could catch in the right places, but anyway this happens , and Jena should handle this gracefully. Afterwards, I get "Impossibly large object" often , and the database seems damaged. Restarting the app. does not help.
The code will do an abort() just before the exception - I don't know whatelse is graceful. read transctiosn can call commit-end like write transactions so that the same pattern is used. There is no need to do en() without commit/abort.
Is this situation repeatable? Can you turn it into a java, non-BananaRDF test case?
In 3.7.0, there is a new "promote" for tranactions that start in READ, and try to go to WRITE mode only if an update is attempted. This is tricky - there is a decision to be made as to whether other commits become visible
https://github.com/apache/jena/blob/master/jena-arq/src/main/java/org/apache/jena/sparql/core/Transactional.java#L126 and part of Txn as: https://github.com/apache/jena/blob/master/jena-arq/src/main/java/org/apache/jena/system/Txn.java#L49 Andy
org.apache.jena.sparql.JenaTransactionException: end() called for WRITE transaction without commit or abort having been called. This causes a forced abort. at org.apache.jena.tdb.transaction.Transaction.close(Transaction.java:245) ~[jena-tdb-3.6.0.jar:3.6.0] at org.apache.jena.tdb.transaction.DatasetGraphTxn.end(DatasetGraphTxn.java:70) ~[jena-tdb-3.6.0.jar:3.6.0] at org.apache.jena.tdb.transaction.DatasetGraphTransaction._end(DatasetGraphTransaction.java:207) ~[jena-tdb-3.6.0.jar:3.6.0] at org.apache.jena.sparql.core.DatasetGraphTrackActive.end(DatasetGraphTrackActive.java:58) ~[jena-arq-3.6.0.jar:3.6.0] at org.apache.jena.sparql.core.DatasetImpl.end(DatasetImpl.java:136) ~[jena-arq-3.6.0.jar:3.6.0] at org.w3.banana.jena.JenaDatasetStore$$anonfun$rw$1.apply(JenaDatasetStore.scala:28) ~[banana-jena_2.11.jar:0.8.4-SNAPSHOT] at scala.util.Try$.apply(Try.scala:192) ~[scala-library-2.11.12.jar:?] at org.w3.banana.jena.*JenaDatasetStore.rw*(JenaDatasetStore.scala:22) ~[banana-jena_2.11.jar:0.8.4-SNAPSHOT] at org.w3.banana.jena.JenaDatasetStore.rw(JenaDatasetStore.scala:10) ~[banana-jena_2.11.jar:0.8.4-SNAPSHOT] at deductions.runtime.sparql_cache.SPARQLHelpers$class.wrapInTransaction(SPARQLHelpers.scala:152) ~[classes/:?] at controllers.Application$.wrapInTransaction(Application.scala:8) ~[classes/:?] at deductions.runtime.services.DashboardHistoryUserActions$class.makeTableHistoryUserActions(DashboardHistoryUserActions.scala:92) ~[classes/:?]