Paolo, I don't know who wrote the code, but it would help if a first analysis is done with the stack trace I provided and perhaps other questions that can help identify the problem and a possible fix. Producing sharable code which reproduces the problem is not trivial and may not even be possible since we run in a rather complex framework. If possible, I will try to debug myself from within our framework but obviously, I have limited knowledge of the details of the PageBlockMgr.
All the instances of this stack trace (and I am seeing quite a few of them) seem to come from BulkUpdateHandlerTDB.removeAll, but I know that removeAll initially works fine (until the NPE occurs the first time - it seems that after the first time, it keeps happening). I will also try to isolate the problem more to see if there is anything specific that brings the store in this situation thanks Simon From: Paolo Castagna <[email protected]> To: [email protected] Date: 08/05/2011 10:46 AM Subject: Re: testing TDB-Tx Hi Simon, I don't have an answer or a solution to your problem, but I want to thank you for reporting your experience (and the problems you found) on jena-dev. It would be extremely helpful if you could reproduce the problem with some sharable code we can run and debug. I know, I know... it's not always easy nor possible. I hit a problem using TestTransSystem.java which runs multiple threads and it's not easy to replicate. Thanks again and keep sharing on jena-dev, this way everybody can benefit. Cheers, Paolo Simon Helsen wrote: > Hi everyone, > > I am giving a first stab at integrating TDB-Tx into our framework. My > first goal is to test this new TDB *without* actually using the > transaction API because we are coming from TDB 0.8.7. After some minor > problems on our end, I seem to run into the following NPE (usually > followed by a warning) > > 09:49:02,176 [jazz.jfs.suspending.indexer.internal.triple] ERROR > com.ibm.team.jfs - CRJZS5663E Unable to > persist tripe index > java.lang.NullPointerException > at com.hp.hpl.jena.tdb.base.page.PageBlockMgr.getWrite( > PageBlockMgr.java:50) > at com.hp.hpl.jena.tdb.index.bplustree.BPTreeNode.getMgrWrite( > BPTreeNode.java:162) > at com.hp.hpl.jena.tdb.index.bplustree.BPTreeNode.get( > BPTreeNode.java:145) > at com.hp.hpl.jena.tdb.index.bplustree.BPTreeNode.delete( > BPTreeNode.java:227) > at > com.hp.hpl.jena.tdb.index.bplustree.BPlusTree.deleteAndReturnOld( > BPlusTree.java:324) > at com.hp.hpl.jena.tdb.index.bplustree.BPlusTree.delete( > BPlusTree.java:318) > at com.hp.hpl.jena.tdb.index.TupleIndexRecord.performDelete( > TupleIndexRecord.java:55) > at com.hp.hpl.jena.tdb.index.TupleIndexBase.delete( > TupleIndexBase.java:61) > at com.hp.hpl.jena.tdb.index.TupleTable.delete(TupleTable.java:108 > ) > at com.hp.hpl.jena.tdb.graph.BulkUpdateHandlerTDB.removeWorker( > BulkUpdateHandlerTDB.java:136) > at com.hp.hpl.jena.tdb.graph.BulkUpdateHandlerTDB.removeAll( > BulkUpdateHandlerTDB.java:90) > at com.hp.hpl.jena.rdf.model.impl.ModelCom.removeAll( > ModelCom.java:315) > ... > 09:49:02,207 [jazz.jfs.suspending.indexer.internal.triple] WARN > com.hp.hpl.jena.tdb.base.block.BlockMgrCache - Write cache: 0 > expelling entry that isn't there > > The exception sits all over my log and I wonder if it is related to the > removeAll. Also, after a while, my memory spikes and I run into an OME. I > don't know yet if there is a relation, but possible these exceptions cause > serious leaks. > > The version of TDB (and associated libs) I am using is > tx-tdb-0.9.0-20110802.083904-6 > > thanks, > > Simon
