You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Leigh Dodds (JIRA)" <ji...@apache.org> on 2013/09/27 14:53:03 UTC

[jira] [Created] (JENA-550) "Impossibly Large Object" exception with command-line indexing

Leigh Dodds created JENA-550:
--------------------------------

             Summary: "Impossibly Large Object" exception with command-line indexing
                 Key: JENA-550
                 URL: https://issues.apache.org/jira/browse/JENA-550
             Project: Apache Jena
          Issue Type: Bug
          Components: TDB
            Reporter: Leigh Dodds
            Priority: Minor


I have a script that calls tdbloader2 to create TDB indexes then the new Lucene text indexer to create indexes.

The first step completed successfully and then whilst the text indexer was running I got the following stack trace:

ERROR ObjectFileStorage.read[nodes](21694280)[filesize=32753969][file.size()=32753969]: Impossibly large object : 1668246831 bytes > filesize-(loc+SizeOfInt)=11059685
com.hp.hpl.jena.tdb.base.file.FileException: ObjectFileStorage.read[nodes](21694280)[filesize=32753969][file.size()=32753969]: Impossibly large object : 1668246831 bytes > filesize-(loc+SizeOfInt)=11059685
	at com.hp.hpl.jena.tdb.base.objectfile.ObjectFileStorage.read(ObjectFileStorage.java:346)
	at com.hp.hpl.jena.tdb.lib.NodeLib.fetchDecode(NodeLib.java:78)
	at com.hp.hpl.jena.tdb.nodetable.NodeTableNative.readNodeFromTable(NodeTableNative.java:178)
	at com.hp.hpl.jena.tdb.nodetable.NodeTableNative._retrieveNodeByNodeId(NodeTableNative.java:103)
	at com.hp.hpl.jena.tdb.nodetable.NodeTableNative.getNodeForNodeId(NodeTableNative.java:74)
	at com.hp.hpl.jena.tdb.nodetable.NodeTableCache._retrieveNodeByNodeId(NodeTableCache.java:103)
	at com.hp.hpl.jena.tdb.nodetable.NodeTableCache.getNodeForNodeId(NodeTableCache.java:74)
	at com.hp.hpl.jena.tdb.nodetable.NodeTableWrapper.getNodeForNodeId(NodeTableWrapper.java:55)
	at com.hp.hpl.jena.tdb.nodetable.NodeTableInline.getNodeForNodeId(NodeTableInline.java:67)
	at com.hp.hpl.jena.tdb.lib.TupleLib.quad(TupleLib.java:161)
	at com.hp.hpl.jena.tdb.lib.TupleLib.quad(TupleLib.java:153)
	at com.hp.hpl.jena.tdb.lib.TupleLib.access$100(TupleLib.java:45)
	at com.hp.hpl.jena.tdb.lib.TupleLib$4.convert(TupleLib.java:87)
	at com.hp.hpl.jena.tdb.lib.TupleLib$4.convert(TupleLib.java:83)
	at org.apache.jena.atlas.iterator.Iter$4.next(Iter.java:317)
	at org.apache.jena.atlas.iterator.IteratorCons.next(IteratorCons.java:97)
	at jena.textindexer.exec(textindexer.java:125)
	at arq.cmdline.CmdMain.mainMethod(CmdMain.java:101)
	at arq.cmdline.CmdMain.mainRun(CmdMain.java:63)
	at arq.cmdline.CmdMain.mainRun(CmdMain.java:50)
	at jena.textindexer.main(textindexer.java:55)

No other code is touching the database, so I'm not clear how the node table could have gotten corrupted. 

During a previous run of the script I got an exception because of an invalid URI:

org.apache.jena.riot.RiotException: [line: 2, col: 110] illegal escape sequence value: , (0x2C)
	at org.apache.jena.riot.system.ErrorHandlerFactory$ErrorHandlerStd.fatal(ErrorHandlerFactory.java:132)


I'm wondering whether this exception might have been the cause of the corruption?

Deleting the index directories and re-running fixed the issue

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira