You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Simon Helsen (JIRA)" <ji...@apache.org> on 2011/08/06 00:13:27 UTC
[jira] [Created] (JENA-86) NPE in BlockMgrCache in direct mode
NPE in BlockMgrCache in direct mode
-----------------------------------
Key: JENA-86
URL: https://issues.apache.org/jira/browse/JENA-86
Project: Jena
Issue Type: Bug
Components: TDB
Reporter: Simon Helsen
Priority: Critical
There seems to be a problem with the implementation of getWrite in BlockMgrCache. Whenever there is a write and read cache miss, the code does not actually delegate to the wrapped BlockMgr. In direct mode, this would have to be the file system. The resulting exception is
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)
I think the fix is to change the following code in the getWrite method of BlockMgrCache (starting at line 158):
// Did not find.
cacheMisses++ ;
log("Miss/w: %d", id) ;
if ( writeCache != null )
writeCache.put(id, blk) ;
return blk ;
into
// Did not find.
cacheMisses++ ;
log("Miss/w: %d", id) ;
blk = super.getWrite(id);
if ( writeCache != null )
writeCache.put(id, blk) ;
return blk ;
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Assigned] (JENA-86) NPE in BlockMgrCache in direct mode
Posted by "Andy Seaborne (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-86?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Seaborne reassigned JENA-86:
---------------------------------
Assignee: Andy Seaborne
> NPE in BlockMgrCache in direct mode
> -----------------------------------
>
> Key: JENA-86
> URL: https://issues.apache.org/jira/browse/JENA-86
> Project: Jena
> Issue Type: Bug
> Components: TDB
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
>
> There seems to be a problem with the implementation of getWrite in BlockMgrCache. Whenever there is a write and read cache miss, the code does not actually delegate to the wrapped BlockMgr. In direct mode, this would have to be the file system. The resulting exception is
> 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)
> I think the fix is to change the following code in the getWrite method of BlockMgrCache (starting at line 158):
> // Did not find.
> cacheMisses++ ;
> log("Miss/w: %d", id) ;
> if ( writeCache != null )
> writeCache.put(id, blk) ;
> return blk ;
> into
> // Did not find.
> cacheMisses++ ;
> log("Miss/w: %d", id) ;
> blk = super.getWrite(id);
> if ( writeCache != null )
> writeCache.put(id, blk) ;
> return blk ;
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Re: [jira] [Commented] (JENA-86) NPE in BlockMgrCache in direct mode
Posted by Paolo Castagna <ca...@googlemail.com>.
Andy Seaborne (JIRA) wrote:
> [ https://issues.apache.org/jira/browse/JENA-86?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13080970#comment-13080970 ]
>
> Andy Seaborne commented on JENA-86:
> -----------------------------------
>
> Only version numbers and timestamps (which tdb.tdbquery -version should print) at the moment.
>
> Or "svn update ; mvn clean install"
>
> I'd like to be doing nightly builds and we could turn this on in Apache's Jenkins, but that isn't too reliable and we would be eating disk space if left to build every commit (as it is currently). It can be "archive last" but whether "last" means "last successful" or "last attempt", I don't know. Not sure where they go either!
It is possible to configure Nexus (i.e. the Maven repository manager)
to automatically delete the oldest SNAPSHOTs and keep the last N.
However, I do not know if this option is used @ Apache.
> It's two slightly different CI scenarios: build-to-test and build-to-create-snapshot.
I find it useful to commit -> have Jenkins to build and publish new SNAPSHOTs
-> tests run on all modules which depend on that SNAPSHOT.
Build to create a SNAPSHOT can be slower but if it is done automatically or
nightly by Jenkins it's not a big problem.
Paolo
>
> At the moment, (2011/08/08) we've lost the maven repo-dev in the unrelated AWS problems.
>
>
>
>
>> NPE in BlockMgrCache in direct mode
>> -----------------------------------
>>
>> Key: JENA-86
>> URL: https://issues.apache.org/jira/browse/JENA-86
>> Project: Jena
>> Issue Type: Bug
>> Components: TDB
>> Reporter: Simon Helsen
>> Assignee: Andy Seaborne
>> Priority: Critical
>>
>> There seems to be a problem with the implementation of getWrite in BlockMgrCache. Whenever there is a write and read cache miss, the code does not actually delegate to the wrapped BlockMgr. In direct mode, this would have to be the file system. The resulting exception is
>> 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)
>> I think the fix is to change the following code in the getWrite method of BlockMgrCache (starting at line 158):
>> // Did not find.
>> cacheMisses++ ;
>> log("Miss/w: %d", id) ;
>> if ( writeCache != null )
>> writeCache.put(id, blk) ;
>> return blk ;
>> into
>> // Did not find.
>> cacheMisses++ ;
>> log("Miss/w: %d", id) ;
>> blk = super.getWrite(id);
>> if ( writeCache != null )
>> writeCache.put(id, blk) ;
>> return blk ;
>
> --
> This message is automatically generated by JIRA.
> For more information on JIRA, see: http://www.atlassian.com/software/jira
>
>
[jira] [Commented] (JENA-86) NPE in BlockMgrCache in direct mode
Posted by "Andy Seaborne (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-86?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13080970#comment-13080970 ]
Andy Seaborne commented on JENA-86:
-----------------------------------
Only version numbers and timestamps (which tdb.tdbquery -version should print) at the moment.
Or "svn update ; mvn clean install"
I'd like to be doing nightly builds and we could turn this on in Apache's Jenkins, but that isn't too reliable and we would be eating disk space if left to build every commit (as it is currently). It can be "archive last" but whether "last" means "last successful" or "last attempt", I don't know. Not sure where they go either!
It's two slightly different CI scenarios: build-to-test and build-to-create-snapshot.
At the moment, (2011/08/08) we've lost the maven repo-dev in the unrelated AWS problems.
> NPE in BlockMgrCache in direct mode
> -----------------------------------
>
> Key: JENA-86
> URL: https://issues.apache.org/jira/browse/JENA-86
> Project: Jena
> Issue Type: Bug
> Components: TDB
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
>
> There seems to be a problem with the implementation of getWrite in BlockMgrCache. Whenever there is a write and read cache miss, the code does not actually delegate to the wrapped BlockMgr. In direct mode, this would have to be the file system. The resulting exception is
> 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)
> I think the fix is to change the following code in the getWrite method of BlockMgrCache (starting at line 158):
> // Did not find.
> cacheMisses++ ;
> log("Miss/w: %d", id) ;
> if ( writeCache != null )
> writeCache.put(id, blk) ;
> return blk ;
> into
> // Did not find.
> cacheMisses++ ;
> log("Miss/w: %d", id) ;
> blk = super.getWrite(id);
> if ( writeCache != null )
> writeCache.put(id, blk) ;
> return blk ;
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (JENA-86) NPE in BlockMgrCache in direct mode
Posted by "Simon Helsen (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-86?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13080949#comment-13080949 ]
Simon Helsen commented on JENA-86:
----------------------------------
Thanks Andy. Is there a way to figure out what fixes made it into subsequent nightly or continuous builds?
(I am probably quite spoiled by IBM's RTC)
> NPE in BlockMgrCache in direct mode
> -----------------------------------
>
> Key: JENA-86
> URL: https://issues.apache.org/jira/browse/JENA-86
> Project: Jena
> Issue Type: Bug
> Components: TDB
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
>
> There seems to be a problem with the implementation of getWrite in BlockMgrCache. Whenever there is a write and read cache miss, the code does not actually delegate to the wrapped BlockMgr. In direct mode, this would have to be the file system. The resulting exception is
> 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)
> I think the fix is to change the following code in the getWrite method of BlockMgrCache (starting at line 158):
> // Did not find.
> cacheMisses++ ;
> log("Miss/w: %d", id) ;
> if ( writeCache != null )
> writeCache.put(id, blk) ;
> return blk ;
> into
> // Did not find.
> cacheMisses++ ;
> log("Miss/w: %d", id) ;
> blk = super.getWrite(id);
> if ( writeCache != null )
> writeCache.put(id, blk) ;
> return blk ;
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Closed] (JENA-86) NPE in BlockMgrCache in direct mode
Posted by "Andy Seaborne (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-86?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Seaborne closed JENA-86.
-----------------------------
> NPE in BlockMgrCache in direct mode
> -----------------------------------
>
> Key: JENA-86
> URL: https://issues.apache.org/jira/browse/JENA-86
> Project: Jena
> Issue Type: Bug
> Components: TDB
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
>
> There seems to be a problem with the implementation of getWrite in BlockMgrCache. Whenever there is a write and read cache miss, the code does not actually delegate to the wrapped BlockMgr. In direct mode, this would have to be the file system. The resulting exception is
> 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)
> I think the fix is to change the following code in the getWrite method of BlockMgrCache (starting at line 158):
> // Did not find.
> cacheMisses++ ;
> log("Miss/w: %d", id) ;
> if ( writeCache != null )
> writeCache.put(id, blk) ;
> return blk ;
> into
> // Did not find.
> cacheMisses++ ;
> log("Miss/w: %d", id) ;
> blk = super.getWrite(id);
> if ( writeCache != null )
> writeCache.put(id, blk) ;
> return blk ;
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Resolved] (JENA-86) NPE in BlockMgrCache in direct mode
Posted by "Andy Seaborne (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/JENA-86?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andy Seaborne resolved JENA-86.
-------------------------------
Resolution: Fixed
Fix applied
> NPE in BlockMgrCache in direct mode
> -----------------------------------
>
> Key: JENA-86
> URL: https://issues.apache.org/jira/browse/JENA-86
> Project: Jena
> Issue Type: Bug
> Components: TDB
> Reporter: Simon Helsen
> Assignee: Andy Seaborne
> Priority: Critical
>
> There seems to be a problem with the implementation of getWrite in BlockMgrCache. Whenever there is a write and read cache miss, the code does not actually delegate to the wrapped BlockMgr. In direct mode, this would have to be the file system. The resulting exception is
> 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)
> I think the fix is to change the following code in the getWrite method of BlockMgrCache (starting at line 158):
> // Did not find.
> cacheMisses++ ;
> log("Miss/w: %d", id) ;
> if ( writeCache != null )
> writeCache.put(id, blk) ;
> return blk ;
> into
> // Did not find.
> cacheMisses++ ;
> log("Miss/w: %d", id) ;
> blk = super.getWrite(id);
> if ( writeCache != null )
> writeCache.put(id, blk) ;
> return blk ;
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira