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/:?]


Reply via email to