On 09/08/12 17:43, Simon Helsen wrote:
Hi,

I am currently testing out things internally with the just released 2.7.3
but I am running into some problems. One seems pretty low-level and is
worrysome. This is the exception:

Caused by: com.hp.hpl.jena.tdb.TDBException: Allocation attempt on
NodeTableReadonly
         at
com.hp.hpl.jena.tdb.nodetable.NodeTableReadonly.getAllocateNodeId(
NodeTableReadonly.java:37)
         at com.hp.hpl.jena.tdb.store.GraphNamedTDB.getGraphNodeId(
GraphNamedTDB.java:149)
         at com.hp.hpl.jena.tdb.store.GraphNamedTDB.countThis(
GraphNamedTDB.java:124)
         at com.hp.hpl.jena.tdb.store.GraphTDBBase.graphBaseSize(
GraphTDBBase.java:178)
         at com.hp.hpl.jena.sparql.graph.GraphBase2.size(
GraphBase2.java:381)
         at com.hp.hpl.jena.sparql.graph.GraphBase2.isEmpty(
GraphBase2.java:432)
         at com.hp.hpl.jena.rdf.model.impl.ModelCom.isEmpty(
ModelCom.java:871)
         at com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider$8.run(
JenaTxTdbProvider.java:991)
         at com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider$8.run(
JenaTxTdbProvider.java:1)
         at
com.ibm.team.jfs.rdf.internal.jena.tdb.JenaTxTdbProvider.storeOperation(
JenaTxTdbProvider.java:204)
         ... 56 more

Unfortunately, I can't seem to reliably reproduce it even though I am not
running any concurrent tests. Any idea who this kind of exception can
occur and what I can do to perhaps construct a test case?

none of this has been observed in 2.7.1 so it must be related to recent
changes

I have no idea why it is not reliably produced. You are inside a read transaction (your stacktrace and report don't mention it but otherwise NodeTableReadonly isn't used).

I've fixed the problem - it's to do with a graph that does not exist in the database. The code is trying to allocate a node for it in a way that writes the node out. It shouldn't.

If it is not produced reliably, something else is going on in your code. Either earlier code is creating the graph sometimes or you do in fact have some concurrency.

        Andy


thanks

Simon


Reply via email to