Hi, Is this exception reproducible with version 1.4.184, with a fresh database? If yes, would it be possible to send me or post a reproducible test case?
Regards, Thomas On Wed, Dec 17, 2014 at 5:36 PM, pishen tsai <[email protected]> wrote: > > The .mv.db file is not growing that large (now around 200M) even without > re-opening this time. > But I got an Exception that I have no idea why... > > org.h2.jdbc.JdbcSQLException: General error: > "java.lang.IllegalStateException: Negative position -1847 [1.4.183/6]" > [50000-183] > at > org.h2.message.DbException.getJdbcSQLException(DbException.java:345) > ~[h2-1.4.183.jar:1.4.183] > at org.h2.message.DbException.get(DbException.java:168) > ~[h2-1.4.183.jar:1.4.183] > at org.h2.message.DbException.convert(DbException.java:295) > ~[h2-1.4.183.jar:1.4.183] > at > org.h2.mvstore.db.MVTableEngine$1.uncaughtException(MVTableEngine.java:93) > ~[h2-1.4.183.jar:1.4.183] > at org.h2.mvstore.MVStore.writeInBackground(MVStore.java:2369) > ~[h2-1.4.183.jar:1.4.183] > Caused by: java.lang.IllegalStateException: Negative position -1847 > [1.4.183/6] > at > org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:768) > ~[h2-1.4.183.jar:1.4.183] > at > org.h2.mvstore.MVStore.readPageChunkReferences(MVStore.java:1262) > ~[h2-1.4.183.jar:1.4.183] > at > org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1240) > ~[h2-1.4.183.jar:1.4.183] > at > org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1244) > ~[h2-1.4.183.jar:1.4.183] > at > org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1244) > ~[h2-1.4.183.jar:1.4.183] > > Regards, > Pishen > > > > > 2014-12-16 0:13 GMT+08:00 pishen tsai <[email protected]>: >> >> Thanks, I will try it in days, and will report the result after that. >> >> Regards, >> Pishen >> >> 2014-12-16 0:09 GMT+08:00 Thomas Mueller <[email protected]>: >>> >>> Hi, >>> >>> Could you try again with the latest version of H2? >>> >>> (Please not there is a bug that prevents index usage if you use >>> auto-increment column; but I think you don't use this, so it shouldn't >>> affect you). >>> >>> Regards, >>> Thomas >>> >>> On Mon, Dec 1, 2014 at 12:18 PM, pishen tsai <[email protected]> wrote: >>> >>>> Hi, >>>> >>>> I have surveyed a bit and found that h2 need to compact the database >>>> when the JDBC connection is closed. >>>> Hence I tried to close and reopen the connection every 1000~2000 >>>> INSERT/UPDATE. >>>> Now the size of .mv.db grows much slower, but the size is still larger >>>> than 44M, maybe I have to enlarge the shutdown delay for the DB to compact >>>> more. May tried that later. >>>> >>>> Thanks, >>>> pishen >>>> >>>> Thomas Mueller於 2014年12月1日星期一UTC+8下午2時50分53秒寫道: >>>>> >>>>> Hi, >>>>> >>>>> It is a known problem that the .mv.db file grows large, and I'm >>>>> working on reducing the file size. However it shouldn't grow _that_ large. >>>>> Could you post your test case please? >>>>> >>>>> Regards, >>>>> Thomas >>>>> >>>>> On Sunday, November 30, 2014, pishen tsai <[email protected]> wrote: >>>>> >>>>>> Hello, >>>>>> >>>>>> I'm using Anorm (in Play framework 2.3.6) to store one table with >>>>>> 450000 rows in H2 (1.4.182). >>>>>> >>>>>> The table is created by "CREATE TABLE terms (name VARCHAR(20) PRIMARY >>>>>> KEY, df INT)" >>>>>> >>>>>> After frequently INSERT and UPDATE all the data into the table, the >>>>>> .mv.db file size grows up to 20GB. >>>>>> Then, I close the JDBC connection and open it again, and the .mv.db >>>>>> file size drop back to 44MB. >>>>>> Any idea why the file size can grow and drop so much? I have checked >>>>>> the content of table, and the data seems unchanged. >>>>>> >>>>>> I'm not sure if it's the problem of transaction log, but by default, >>>>>> Anorm use JDBC with auto-commit, so each INSERT and UPDATE should be in >>>>>> one >>>>>> single transaction? >>>>>> >>>>>> Anorm: https://playframework.com/documentation/2.3.x/ScalaAnorm >>>>>> >>>>>> Thanks, >>>>>> pishen >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "H2 Database" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To post to this group, send email to [email protected]. >>>>>> Visit this group at http://groups.google.com/group/h2-database. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "H2 Database" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at http://groups.google.com/group/h2-database. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "H2 Database" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/h2-database/dqONbAmK9-M/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/h2-database. >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- > You received this message because you are subscribed to the Google Groups > "H2 Database" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/h2-database. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "H2 Database" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/h2-database. For more options, visit https://groups.google.com/d/optout.
