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.
