On 10/08/12 15:36, Simon Helsen wrote:
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

I'll check the fix in when I can - it is on another machine, which why I didn't say it is svn because it's not.

A complete snapshots gets built every night.

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.

I created a completely predicable test. If the graph name exists, no error; if the graph name does not exist, error.

If you are seeing unpredictability, something else is going on.

        Andy



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
 >




Reply via email to