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 <pishe...@gmail.com> 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 <pishe...@gmail.com>: >> >> 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 <thomas.tom.muel...@gmail.com>: >>> >>> 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 <pishe...@gmail.com> 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 <pish...@gmail.com> 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 h2-database+unsubscr...@googlegroups.com. >>>>>> To post to this group, send email to h2-database@googlegroups.com. >>>>>> 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 h2-database+unsubscr...@googlegroups.com. >>>> To post to this group, send email to h2-database@googlegroups.com. >>>> 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 >>> h2-database+unsubscr...@googlegroups.com. >>> To post to this group, send email to h2-database@googlegroups.com. >>> 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 h2-database+unsubscr...@googlegroups.com. > To post to this group, send email to h2-database@googlegroups.com. > 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 h2-database+unsubscr...@googlegroups.com. To post to this group, send email to h2-database@googlegroups.com. Visit this group at http://groups.google.com/group/h2-database. For more options, visit https://groups.google.com/d/optout.