Andy, you write "you fixed it". I assume you mean by that "you fixed it after 2.7.3"? Is there a new snapshot with this fix? Ideally, could you tell me what classes you changed to fix this? It may allow me to patch 2.7.3
As for the "something else going on in my code", in general, that is always possible, but I ran into this issue while running our junit test suites which run fine on 2.7.1. thanks SImon From: Andy Seaborne <[email protected]> To: [email protected] Date: 08/10/2012 04:26 AM Subject: Re: Allocation attempt on NodeTableReadonly in 2.7.3 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 >
