[ https://issues.apache.org/jira/browse/JENA-91?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13107940#comment-13107940 ]
Simon Helsen commented on JENA-91: ---------------------------------- Well, with the patched TestSystemTrans, I have seen them all in direct mode. But the main difference is that in direct mode, I also see ERROR com.hp.hpl.jena.tdb.base.block.BlockMgrCache - write: Block in the read cache which shows well before the other exceptions and also before I close an index and delete/recreate the directories. So, to answer your question, I have also seen the exception "allocated: expected [000000000000022E], got [00000000000001EB] " (with different numbers perhaps) and I keep thinking it is all related to each other. But we could go one-by-one. If allocated: expected [000000000000022E], got [00000000000001EB] can be fixed in direct mode, I can test and see if I still see other problems. > extremely large buffer is being created in ObjectFileStorage > ------------------------------------------------------------ > > Key: JENA-91 > URL: https://issues.apache.org/jira/browse/JENA-91 > Project: Jena > Issue Type: Bug > Components: TDB > Reporter: Simon Helsen > Assignee: Andy Seaborne > Priority: Critical > Attachments: JENA-91_NodeTableTrans_r1159121.patch, > TestTransSystem.patch, TestTransSystem2.patch, TestTransSystem3.patch, > TestTransSystem4.patch > > > I tried to debug the OME and check why a bytebuffer is causing my native > memory to explode in almost no time. It all seems to happen in this bit of > code in com.hp.hpl.jena.tdb.base.objectfile.ObjectFileStorage (lines 243 > onwards) > // No - it's in the underlying file storage. > lengthBuffer.clear() ; > int x = file.read(lengthBuffer, loc) ; > if ( x != 4 ) > throw new > FileException("ObjectFile.read("+loc+")["+filesize+"]["+file.size()+"]: > Failed to read the length : got "+x+" bytes") ; > int len = lengthBuffer.getInt(0) ; > ByteBuffer bb = ByteBuffer.allocate(len) ; > My debugger shows that x==4. It also shows the lengthBuffer has the following > content: [111, 110, 61, 95]. This amounts to the value of len=1869495647, > which is rather a lot :-) Obviously, the next statement (ByteBuffer.allocate) > causes the OME. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira