I think I've just run into this bug (deadlock trace attached). Will try the 
build in SVN and see how it goes.

Cheers,

Matthew.

—

Found one Java-level deadlock:
=============================
"pool-1-thread-10":
  waiting to lock monitor 0x00007f69d805b798 (object 0x00000000daa51c40, a 
org.h2.engine.Session),
  which is held by "pool-1-thread-8"
"pool-1-thread-8":
  waiting to lock monitor 0x00007f69d805f4a0 (object 0x00000000da978f80, a 
org.h2.engine.Database),
  which is held by "pool-1-thread-4"
"pool-1-thread-4":
  waiting to lock monitor 0x00007f69d805b798 (object 0x00000000daa51c40, a 
org.h2.engine.Session),
  which is held by "pool-1-thread-8"

Java stack information for the threads listed above:
===================================================
"pool-1-thread-10":
at org.h2.store.LobStorageBackend.addLob(LobStorageBackend.java:368)
- waiting to lock <0x00000000daa51c40> (a org.h2.engine.Session)
at org.h2.store.LobStorageBackend.createClob(LobStorageBackend.java:551)
at org.h2.value.DataType.convertToValue(DataType.java:921)
at 
org.h2.jdbc.JdbcPreparedStatement.setObject(JdbcPreparedStatement.java:451)
at 
clojure.java.jdbc.internal$set_parameters$fn__2738.invoke(internal.clj:279)
at clojure.core$map_indexed$mapi__6342$fn__6343.invoke(core.clj:6580)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
- locked <0x00000000cc1c4230> (a clojure.lang.LazySeq)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
- locked <0x00000000cc1c4230> (a clojure.lang.LazySeq)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$dorun.invoke(core.clj:2780)
at clojure.java.jdbc.internal$set_parameters.invoke(internal.clj:277)
at clojure.java.jdbc.internal$do_prepared_STAR_.doInvoke(internal.clj:354)
at clojure.lang.RestFn.applyTo(RestFn.java:139)
at clojure.core$apply.invoke(core.clj:619)
at clojure.java.jdbc$do_prepared.doInvoke(jdbc.clj:206)
at clojure.lang.RestFn.applyTo(RestFn.java:139)
at clojure.core$apply.invoke(core.clj:617)
at shopping.sql$do_prepared_rows.invoke(sql.clj:37)
at shopping.persistence$write_states.invoke(persistence.clj:305)
at 
shopping.persistence$rewrite_repository$fn__2986.invoke(persistence.clj:274)
at clojure.java.jdbc.internal$transaction_STAR_.invoke(internal.clj:204)
at shopping.persistence$rewrite_repository.invoke(persistence.clj:247)
at 
shopping.persistence$make_persister$fn__2942$fn__2943$fn__2944.invoke(persistence.clj:148)
at clojure.java.jdbc.internal$with_connection_STAR_.invoke(internal.clj:186)
at 
shopping.persistence$make_persister$fn__2942$fn__2943.invoke(persistence.clj:145)
at shopping.persistence$make_persister$fn__2942.invoke(persistence.clj:144)
at clojure.lang.AFn.applyToHelper(AFn.java:167)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at shopping.persistence$invoke_safe.doInvoke(persistence.clj:384)
at clojure.lang.RestFn.invoke(RestFn.java:525)
at 
shopping.persistence$repo_send$fn__2931$fn__2932.invoke(persistence.clj:125)
at clojure.core.protocols$fn__6034.invoke(protocols.clj:143)
at clojure.core.protocols$fn__6005$G__6000__6014.invoke(protocols.clj:19)
at clojure.core.protocols$seq_reduce.invoke(protocols.clj:31)
at clojure.core.protocols$fn__6028.invoke(protocols.clj:48)
at clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13)
at clojure.core$reduce.invoke(core.clj:6177)
at shopping.persistence$repo_send$fn__2931.invoke(persistence.clj:128)
at clojure.core$binding_conveyor_fn$fn__4107.invoke(core.clj:1839)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.lang.Agent$Action.doRun(Agent.java:114)
at clojure.lang.Agent$Action.run(Agent.java:163)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
"pool-1-thread-8":
at org.h2.store.LobStorageBackend.addLob(LobStorageBackend.java:369)
- waiting to lock <0x00000000da978f80> (a org.h2.engine.Database)
- locked <0x00000000daa51c40> (a org.h2.engine.Session)
at org.h2.store.LobStorageBackend.createClob(LobStorageBackend.java:551)
at org.h2.value.DataType.convertToValue(DataType.java:921)
at 
org.h2.jdbc.JdbcPreparedStatement.setObject(JdbcPreparedStatement.java:451)
at 
clojure.java.jdbc.internal$set_parameters$fn__2738.invoke(internal.clj:279)
at clojure.core$map_indexed$mapi__6342$fn__6343.invoke(core.clj:6580)
at clojure.lang.LazySeq.sval(LazySeq.java:42)
- locked <0x00000000cc22c1e0> (a clojure.lang.LazySeq)
at clojure.lang.LazySeq.seq(LazySeq.java:60)
- locked <0x00000000cc22c1e0> (a clojure.lang.LazySeq)
at clojure.lang.RT.seq(RT.java:484)
at clojure.core$seq.invoke(core.clj:133)
at clojure.core$dorun.invoke(core.clj:2780)
at clojure.java.jdbc.internal$set_parameters.invoke(internal.clj:277)
at clojure.java.jdbc.internal$do_prepared_STAR_.doInvoke(internal.clj:354)
at clojure.lang.RestFn.applyTo(RestFn.java:139)
at clojure.core$apply.invoke(core.clj:619)
at clojure.java.jdbc$do_prepared.doInvoke(jdbc.clj:206)
at clojure.lang.RestFn.applyTo(RestFn.java:139)
at clojure.core$apply.invoke(core.clj:617)
at shopping.sql$do_prepared_rows.invoke(sql.clj:37)
at shopping.persistence$write_states.invoke(persistence.clj:305)
at 
shopping.persistence$rewrite_repository$fn__2986.invoke(persistence.clj:274)
at clojure.java.jdbc.internal$transaction_STAR_.invoke(internal.clj:204)
at shopping.persistence$rewrite_repository.invoke(persistence.clj:247)
at 
shopping.persistence$make_persister$fn__2942$fn__2943$fn__2944.invoke(persistence.clj:148)
at clojure.java.jdbc.internal$with_connection_STAR_.invoke(internal.clj:186)
at 
shopping.persistence$make_persister$fn__2942$fn__2943.invoke(persistence.clj:145)
at shopping.persistence$make_persister$fn__2942.invoke(persistence.clj:144)
at clojure.lang.AFn.applyToHelper(AFn.java:167)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at shopping.persistence$invoke_safe.doInvoke(persistence.clj:384)
at clojure.lang.RestFn.invoke(RestFn.java:525)
at 
shopping.persistence$repo_send$fn__2931$fn__2932.invoke(persistence.clj:125)
at clojure.core.protocols$fn__6034.invoke(protocols.clj:143)
at clojure.core.protocols$fn__6005$G__6000__6014.invoke(protocols.clj:19)
at clojure.core.protocols$seq_reduce.invoke(protocols.clj:31)
at clojure.core.protocols$fn__6028.invoke(protocols.clj:48)
at clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13)
at clojure.core$reduce.invoke(core.clj:6177)
at shopping.persistence$repo_send$fn__2931.invoke(persistence.clj:128)
at clojure.core$binding_conveyor_fn$fn__4107.invoke(core.clj:1839)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.lang.Agent$Action.doRun(Agent.java:114)
at clojure.lang.Agent$Action.run(Agent.java:163)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)
"pool-1-thread-4":
at org.h2.store.LobStorageBackend.setTable(LobStorageBackend.java:561)
- waiting to lock <0x00000000daa51c40> (a org.h2.engine.Session)
at org.h2.value.ValueLobDb.unlink(ValueLobDb.java:171)
at org.h2.engine.Session.commit(Session.java:504)
at org.h2.command.dml.TransactionCommand.update(TransactionCommand.java:47)
at org.h2.command.CommandContainer.update(CommandContainer.java:79)
at org.h2.command.Command.executeUpdate(Command.java:235)
- locked <0x00000000da978f80> (a org.h2.engine.Database)
at org.h2.jdbc.JdbcConnection.commit(JdbcConnection.java:449)
- locked <0x00000000cc13c8c8> (a 
org.h2.jdbcx.JdbcXAConnection$PooledJdbcConnection)
at clojure.java.jdbc.internal$transaction_STAR_.invoke(internal.clj:207)
at shopping.persistence$rewrite_repository.invoke(persistence.clj:247)
at 
shopping.persistence$make_persister$fn__2942$fn__2943$fn__2944.invoke(persistence.clj:148)
at clojure.java.jdbc.internal$with_connection_STAR_.invoke(internal.clj:186)
at 
shopping.persistence$make_persister$fn__2942$fn__2943.invoke(persistence.clj:145)
at shopping.persistence$make_persister$fn__2942.invoke(persistence.clj:144)
at clojure.lang.AFn.applyToHelper(AFn.java:167)
at clojure.lang.AFn.applyTo(AFn.java:151)
at clojure.core$apply.invoke(core.clj:617)
at shopping.persistence$invoke_safe.doInvoke(persistence.clj:384)
at clojure.lang.RestFn.invoke(RestFn.java:525)
at 
shopping.persistence$repo_send$fn__2931$fn__2932.invoke(persistence.clj:125)
at clojure.core.protocols$fn__6034.invoke(protocols.clj:143)
at clojure.core.protocols$fn__6005$G__6000__6014.invoke(protocols.clj:19)
at clojure.core.protocols$seq_reduce.invoke(protocols.clj:31)
at clojure.core.protocols$fn__6028.invoke(protocols.clj:48)
at clojure.core.protocols$fn__5979$G__5974__5992.invoke(protocols.clj:13)
at clojure.core$reduce.invoke(core.clj:6177)
at shopping.persistence$repo_send$fn__2931.invoke(persistence.clj:128)
at clojure.core$binding_conveyor_fn$fn__4107.invoke(core.clj:1839)
at clojure.lang.AFn.applyToHelper(AFn.java:161)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.lang.Agent$Action.doRun(Agent.java:114)
at clojure.lang.Agent$Action.run(Agent.java:163)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:724)

-- 
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/groups/opt_out.

Reply via email to