Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
Jena 3.14.0
-
None
Description
TDB2 occasionally throws StackOverflowErrors in BPTree - TDB1 apparently did not. Same background/setting as JENA-1868
Stacktrace:
Caused by: java.lang.StackOverflowError at org.apache.jena.dboe.base.file.BlockAccessMapped.getByteBuffer(BlockAccessMapped.java:145) at org.apache.jena.dboe.base.file.BlockAccessMapped.read(BlockAccessMapped.java:90) at org.apache.jena.dboe.base.block.BlockMgrFileAccess.getBlock(BlockMgrFileAccess.java:71) at org.apache.jena.dboe.base.block.BlockMgrFileAccess.getRead(BlockMgrFileAccess.java:61) at org.apache.jena.dboe.base.block.BlockMgrWrapper.getRead(BlockMgrWrapper.java:46) at org.apache.jena.dboe.base.page.PageBlockMgr.getRead$(PageBlockMgr.java:104) at org.apache.jena.dboe.trans.bplustree.BPTreeNodeMgr.getRead(BPTreeNodeMgr.java:66) at org.apache.jena.dboe.trans.bplustree.BPTreeNodeMgr.getRead(BPTreeNodeMgr.java:36) at org.apache.jena.dboe.trans.bplustree.BPTreeNode.get(BPTreeNode.java:160) at org.apache.jena.dboe.trans.bplustree.BPTreeNode.internalInsert(BPTreeNode.java:501) at org.apache.jena.dboe.trans.bplustree.BPTreeNode.internalInsert(BPTreeNode.java:522) at org.apache.jena.dboe.trans.bplustree.BPTreeNode.internalInsert(BPTreeNode.java:522) at org.apache.jena.dboe.trans.bplustree.BPTreeNode.internalInsert(BPTreeNode.java:522) at org.apache.jena.dboe.trans.bplustree.BPTreeNode.internalInsert(BPTreeNode.java:522)
The attached "test case" manages to reproduce this issue most of the time on my machine (YMMV of course, since the test is based on quite some concurrency voodoo).
The same test is working flawlessly when run against a TDB1 backend.