Sorry, the exception only happens when closing a connection with a large
amount (114508) of MERGE queries executed, and I couldn't post the test
case for you.
The table only contains three columns as "name VARCHAR PRIMARY KEY, df INT,
category_counts VARCHAR"
This is reproducible in both 1.4.183 and 1.4.184.
In 1.4.184 I got
org.h2.jdbc.JdbcSQLException: General error:
"java.lang.IllegalStateException: Negative position -1593 [1.4.184/6]"
[50000-184]
at
org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
~[h2-1.4.184.jar:1.4.184]
at org.h2.message.DbException.get(DbException.java:168)
~[h2-1.4.184.jar:1.4.184]
at org.h2.message.DbException.convert(DbException.java:295)
~[h2-1.4.184.jar:1.4.184]
at
org.h2.mvstore.db.MVTableEngine$1.uncaughtException(MVTableEngine.java:93)
~[h2-1.4.184.jar:1.4.184]
at org.h2.mvstore.MVStore.writeInBackground(MVStore.java:2374)
~[h2-1.4.184.jar:1.4.184]
Caused by: java.lang.IllegalStateException: Negative position -1593
[1.4.184/6]
at
org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:773)
~[h2-1.4.184.jar:1.4.184]
at
org.h2.mvstore.MVStore.readPageChunkReferences(MVStore.java:1267)
~[h2-1.4.184.jar:1.4.184]
at
org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1245)
~[h2-1.4.184.jar:1.4.184]
at
org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1249)
~[h2-1.4.184.jar:1.4.184]
at
org.h2.mvstore.MVStore.collectReferencedChunks(MVStore.java:1249)
~[h2-1.4.184.jar:1.4.184]
I'm falling back to 1.4.182 now and I found that the .mv.db file is no
longer that large (around 500M), not sure if I suddenly change anything.
Regards,
Pishen
2014-12-20 16:11 GMT+08:00 Thomas Mueller <[email protected]>:
> 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 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.