Hi,

Thanks a lot for the test case! I can reproduce the below exception with
your test case. I'm investigating now.

Caused by: java.lang.RuntimeException: Unexpected code path
at org.h2.message.DbException.throwInternalError(DbException.java:242)
at org.h2.message.DbException.throwInternalError(DbException.java:255)
at org.h2.engine.Database.checkMetaFree(Database.java:1404)
at org.h2.engine.Database.removeMeta(Database.java:915)
at org.h2.engine.Database.updateMeta(Database.java:1574)
at org.h2.command.ddl.Analyze.analyzeTable(Analyze.java:125)
at org.h2.mvstore.db.MVTable.analyzeIfRequired(MVTable.java:654)
at org.h2.mvstore.db.MVTable.addRow(MVTable.java:641)
at org.h2.command.dml.Insert.insertRows(Insert.java:156)
at org.h2.command.dml.Insert.update(Insert.java:114)

Regards,
Thomas


On Monday, September 29, 2014, Viktor Voytovych <[email protected]> wrote:

> It does crash even without the "LOG=0;UNDO_LOG=0" stuff. If you run the
> test a few times you might see a few different exceptions. I can provide
> you the output but it would be more efficiently if you could run the test
> on your hardware.
>
> Viktor
>
> On Monday, September 29, 2014 12:43:28 PM UTC+3, Noel Grandin wrote:
>>
>>
>>
>> On 2014-09-29 10:17 AM, Viktor Voytovych wrote:
>> > Hello,
>> >
>> > MULTI_THREADED=0 fixed the issue for me but it's not what I expected...
>> What exactly MULTI_THREADED=1 does? Is there any
>> > good explanation posted? Does it really means that H2 is not multi
>> threaded by default? Would all 32 CPU cores be used
>> > under heavy load?
>> >
>>
>> By default we have a single big lock around the stuff that actually
>> modifies the database. But the result-set processing
>> is still multi-threaded in this mode.
>> In MULTI_THREADED=1 mode, we attempt to use more fine-grained
>> synchronization, but as you noticed, there are still
>> problems there.
>>
>> > I've created a requested small test case (see attached
>> H2MultiThreadedTester.java; required dependencies are h2database
>> > v.1.4.181 and commons-pool v.1.6). It runs great in case if
>> MULTI_THREADED=0. For MULTI_THREADED=1 it throws different
>> > kinds of exceptions.
>> > Let me know if you have any questions regarding the test case.
>>
>> Does it still crash if you remove the "LOG=0;UNDO_LOG=0" stuff? Because
>> in general I don't care about debugging problems
>> with those options because they're only intended for testing, not for
>> production use.
>>
>> -- Noel
>>
>
> The information in this message may be confidential.  It is intended
> solely for
> the addressee(s).  If you are not the intended recipient, any disclosure,
> copying or distribution of the message, or any action or omission taken by
> you
> in reliance on it, is prohibited and may be unlawful.  Please immediately
> contact the sender if you have received this message in error.
>
>  --
> 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]
> <javascript:_e(%7B%7D,'cvml','h2-database%[email protected]');>
> .
> To post to this group, send email to [email protected]
> <javascript:_e(%7B%7D,'cvml','[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.

Reply via email to