transactional behavior not sound
--------------------------------
Key: JENA-96
URL: https://issues.apache.org/jira/browse/JENA-96
Project: Jena
Issue Type: Bug
Environment: tx-tdb-0.9.0-20110809.130753-7
Reporter: Simon Helsen
Priority: Critical
TDB-TX tx-tdb-0.9.0-20110809.130753-7 has transactionality issues. I am seeing
the following stack trace:
com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Transaction has
already committed or aborted
at
com.hp.hpl.jena.tdb.transaction.Transaction.abort(Transaction.java:107)
at com.hp.hpl.jena.tdb.DatasetGraphTxn.abort(DatasetGraphTxn.java:31)
at
com.ibm.team.jfs.rdf.internal.jenatdbtx.JenaTdbProvider.storeOperation(JenaTdbProvider.java:208)
at
com.ibm.team.jfs.rdf.internal.jenatdbtx.JenaTdbProvider.replace(JenaTdbProvider.java:2411)
at
com.ibm.team.jfs.rdf.internal.jenatdbtx.JenaRdfService.replace(JenaRdfService.java:265)
... 14 more
I use the following bit of code to execute writes:
DatasetGraphTxn dsGraph = null;
try {
dsGraph = this.store.begin(ReadWrite.WRITE);
Dataset ds = dsGraph.toDataset();
Model m = ds.getNamedModel(graphName);
E e = modelWriteActivity.run(m);
dsGraph.commit();
return e;
} catch (Exception e) {
if (dsGraph != null) {
dsGraph.abort();
}
// TODO handle better
throw new RuntimeException(e);
} finally {
if (dsGraph != null) {
dsGraph.close();
}
//System.out.println("ModelWriteActivity: " +
(System.currentTimeMillis() - t) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$
}
The only thing I do in the ModelWriteActivity is
model.removeAll();
model.add(graph);
As you can see, there is nothing in here which could have made it possible that
the transaction has committed before. Moreover I only see this happening when I
am executing massive concurrent reads/writes. Sequential operations do not
expose this problem.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira