I'm occasionally getting the double allocation error referenced in a
previous thread [
http://groups.google.com/group/h2-database/
browse_thread/thread/e78d85a78adca144/4c9822e4e537bb58?lnk=gst&q=double
+allocation#4c9822e4e537bb58] and in the ChangeLog for Version 1.0.59
(2007-10-03). I'm using the latest 12/27 H2 release modified with your
Script CLOB fix and a fully updated 1.5 Mac OS X java vm in a
development environment.
The error usually happens after I've stopped the vm by hitting the
"Terminate" button within eclipse. I do not believe anything is wrong
with the database data itself because after one (or occasionally) two
connection attempts by the application server (jboss) H2 has always
figured things out again and returned to normal operation.
What I'm not sure about is how to go about helping you find the
problem. I've only been able to get this error while dealing with a
large-ish dataset of ~650MB which prohibits sending along the whole
thing. I saw the TRACE_LEVEL_FILE request in a previous thread so I
recreated the problem with TRACE_LEVEL_FILE=3 and sent that compressed
trace.db file to Thomas in a private email.
I'd be happy to do any other tests or debugging traces that might be
helpful. I could compile additional logging into H2 if necessary.
My db url is: jdbc:h2:~/Documents/h2/db/
staging;CACHE_SIZE=32768;AUTOCOMMIT=OFF;MAX_LENGTH_INPLACE_LOB=16384
Stack:
Caused by: org.h2.jdbc.JdbcSQLException: General error:
java.lang.Error: double allocation [HY000-64]
at org.h2.message.Message.getSQLException(Message.java:89)
at org.h2.message.Message.convert(Message.java:174)
at org.h2.engine.Database.open(Database.java:458)
at org.h2.engine.Database.<init>(Database.java:193)
at org.h2.engine.Engine.openSession(Engine.java:52)
at org.h2.engine.Engine.getSession(Engine.java:100)
at org.h2.engine.Session.createSession(Session.java:143)
at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:917)
at org.h2.Driver.connect(Driver.java:52)
at
org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:
171)
... 130 more
Caused by: java.lang.Error: double allocation
at org.h2.message.Message.getInternalError(Message.java:126)
at org.h2.store.DiskFile.setPageOwner(DiskFile.java:576)
at org.h2.store.DiskFile.setBlockOwner(DiskFile.java:536)
at org.h2.store.DiskFile.init(DiskFile.java:320)
at org.h2.engine.Database.open(Database.java:450)
Many thanks,
Peter