I've got this dead lock in H2, probably we have to take lock on database
and pagestore always in the same order.
Found one Java-level deadlock:
=============================
"H2 Log Writer":
waiting to lock monitor 0x0000000042adf8e8 (object 0x00000000fd277c80, a
org.h2.store.PageStore),
which is held by "main"
"main":
waiting to lock monitor 0x000000004242ee90 (object 0x00000000fd277d48, a
org.h2.engine.Database),
which is held by "H2 Log Writer"
Java stack information for the threads listed above:
===================================================
"H2 Log Writer":
at org.h2.store.PageStore.flushLog(PageStore.java:985)
- waiting to lock <0x00000000fd277c80> (a org.h2.store.PageStore)
at org.h2.engine.Database.flush(Database.java:1780)
- locked <0x00000000fd277d48> (a org.h2.engine.Database)
at org.h2.store.WriterThread.run(WriterThread.java:86)
at java.lang.Thread.run(Thread.java:662)
"main":
at org.h2.engine.Database.lockMeta(Database.java:772)
- waiting to lock <0x00000000fd277d48> (a org.h2.engine.Database)
at org.h2.engine.Database.verifyMetaLocked(Database.java:760)
at org.h2.store.PageStore.addMeta(PageStore.java:1734)
- locked <0x00000000fd277c80> (a org.h2.store.PageStore)
at org.h2.index.PageBtreeIndex.<init>(PageBtreeIndex.java:62)
at org.h2.table.RegularTable.addIndex(RegularTable.java:223)
at
org.h2.command.ddl.AlterTableAddConstraint.tryUpdate(AlterTableAddConstraint.java:124)
at
org.h2.command.ddl.AlterTableAddConstraint.update(AlterTableAddConstraint.java:68)
at org.h2.command.ddl.CreateTable.update(CreateTable.java:168)
at org.h2.command.CommandContainer.update(CommandContainer.java:75)
at org.h2.command.Command.executeUpdate(Command.java:230)
- locked <0x00000000fd2992d0> (a org.h2.engine.Session)
at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:177)
- locked <0x00000000fd2992d0> (a org.h2.engine.Session)
at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:152)
at org.h2.fulltext.FullTextLucene.init(FullTextLucene.java:106)
--
You received this message because you are subscribed to the Google Groups "H2
Database" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/h2-database/-/5eksji7nSnEJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/h2-database?hl=en.