Hi,

I believe this is fixed with the latest version of H2.

Regards,
Thomas


On Sat, May 4, 2013 at 7:04 AM, Ainimyoung <[email protected]> wrote:

> Hi, I'm working on a project with H2 1.3.171 in server mode.
> Everything was fine while data growing daily until H2 hung due to a
> Java-level deadlock as below.
>
> Found one Java-level deadlock:
> =============================
> "H2 TCP Server (tcp://127.0.1.1:9092) thread":
>   waiting to lock monitor 0x00000000008a5720 (object 0x00000006283c4dd0, a
> org.h2.engine.Database),
>   which is held by "H2 TCP Server (tcp://127.0.1.1:9092) thread"
> "H2 TCP Server (tcp://127.0.1.1:9092) thread":
>   waiting to lock monitor 0x00000000007a0d00 (object 0x00000006283c9558, a
> org.h2.engine.Session),
>   which is held by "H2 TCP Server (tcp://127.0.1.1:9092) thread"
> "H2 TCP Server (tcp://127.0.1.1:9092) thread":
>   waiting to lock monitor 0x00000000008a5720 (object 0x00000006283c4dd0, a
> org.h2.engine.Database),
>   which is held by "H2 TCP Server (tcp://127.0.1.1:9092) thread"
>
> Java stack information for the threads listed above:
> ===================================================
> "H2 TCP Server (tcp://127.0.1.1:9092) thread":
>     at org.h2.engine.Engine.openSession(Engine.java:71)
>     - waiting to lock <0x00000006283c4dd0> (a org.h2.engine.Database)
>     at org.h2.engine.Engine.openSession(Engine.java:159)
>     - locked <0x000000062394e058> (a org.h2.engine.Engine)
>     at org.h2.engine.Engine.createSessionAndValidate(Engine.java:138)
>     at org.h2.engine.Engine.createSession(Engine.java:121)
>     at org.h2.server.TcpServerThread.run(TcpServerThread.java:137)
>     at java.lang.Thread.run(Thread.java:722)
> "H2 TCP Server (tcp://127.0.1.1:9092) thread":
>     at
> org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:101)
>     - waiting to lock <0x00000006283c9558> (a org.h2.engine.Session)
>     at org.h2.store.LobStorage.readBlock(LobStorage.java:226)
>     - locked <0x00000006283c4dd0> (a org.h2.engine.Database)
>     at
> org.h2.store.LobStorage$LobInputStream.fillBuffer(LobStorage.java:463)
>     at
> org.h2.store.LobStorage$LobInputStream.readFully(LobStorage.java:439)
>     at org.h2.store.LobStorage$LobInputStream.read(LobStorage.java:430)
>     at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
>     at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
>     at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
>     - locked <0x000000077ce60998> (a java.io.InputStreamReader)
>     at java.io.InputStreamReader.read(InputStreamReader.java:184)
>     at java.io.BufferedReader.fill(BufferedReader.java:154)
>     at java.io.BufferedReader.read1(BufferedReader.java:205)
>     at java.io.BufferedReader.read(BufferedReader.java:279)
>     - locked <0x000000077ce60998> (a java.io.InputStreamReader)
>     at java.io.Reader.read(Reader.java:140)
>     at org.h2.store.Data.copyString(Data.java:1293)
>     at org.h2.value.Transfer.writeValue(Transfer.java:462)
>     at org.h2.server.TcpServerThread.writeValue(TcpServerThread.java:487)
>     at org.h2.server.TcpServerThread.sendRow(TcpServerThread.java:469)
>     at org.h2.server.TcpServerThread.process(TcpServerThread.java:322)
>     at org.h2.server.TcpServerThread.run(TcpServerThread.java:150)
>     at java.lang.Thread.run(Thread.java:722)
> "H2 TCP Server (tcp://127.0.1.1:9092) thread":
>     at org.h2.engine.Database.update(Database.java:1429)
>     - waiting to lock <0x00000006283c4dd0> (a org.h2.engine.Database)
>     at org.h2.schema.Sequence.flush(Sequence.java:127)
>     - locked <0x00000006283c9558> (a org.h2.engine.Session)
>     - locked <0x00000006284102b0> (a org.h2.schema.Sequence)
>     at org.h2.schema.Sequence.getNext(Sequence.java:92)
>     - locked <0x00000006284102b0> (a org.h2.schema.Sequence)
>     at org.h2.expression.SequenceValue.getValue(SequenceValue.java:30)
>     at org.h2.table.Column.validateConvertUpdateSequence(Column.java:264)
>     - locked <0x00000006284101f8> (a org.h2.table.Column)
>     at org.h2.table.Table.validateConvertUpdateSequence(Table.java:692)
>     at org.h2.command.dml.Insert.insertRows(Insert.java:120)
>     at org.h2.command.dml.Insert.update(Insert.java:84)
>     at org.h2.command.CommandContainer.update(CommandContainer.java:75)
>     at org.h2.command.Command.executeUpdate(Command.java:230)
>     - locked <0x0000000628436c18> (a org.h2.engine.Session)
>     at org.h2.server.TcpServerThread.process(TcpServerThread.java:334)
>     - locked <0x0000000628436c18> (a org.h2.engine.Session)
>     at org.h2.server.TcpServerThread.run(TcpServerThread.java:150)
>     at java.lang.Thread.run(Thread.java:722)
>
> Found 1 deadlock.
>
> The entire jstack log is in attachment.
>
> Environment:
>     h2 1.3.171
>     java version "1.7.0_05"
>     Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
>     Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)
>
> Can any one help? Thanks!
>
> Best Regards.
>
> --
> 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?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
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?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to