Hi Thomas and list, After investigating another corruption yesterday, we noticed something strange: a few minutes before the DB was found corrupt there was a Volume Shadow Copy created for the drive where our H2 files are located.
Apparantly there are multiple reports on the internet that suspect DB's can get corrupted during a Volume Shadow copy creation (thus the original DB gets corrupted, not just the copy), though most are unconfirmed and just suspicions: IBM ClearCase VOB: http://www-01.ibm.com/support/docview.wss?uid=swg21268722 Firebird: https://www.mail-archive.com/firebird-support@yahoogroups.com/msg10672.html https://groups.yahoo.com/neo/groups/firebird-support/conversations/messages/83269 C-tree: http://optiable.com/pclaw-vss-causes-data-loss/ Access: http://www.pcreview.co.uk/threads/volume-shadow-copy-access-corruption.1094172/ Could that also possibly lead to a problem in H2? I'll include the corruption stacktrace from right after the Volume Shadow Copy. H2 was trying to do a commit. This was on a Windows 8.1 6.3 amd64 machine running Java 1.7.0_60 64. We have also checked several instances of H2 corruptions (5) for Volume Shadow copy creations while our application was running: - 2 had a Volume Shadow copy taken previously that day - 1 had it taken 2 days before - 1 had it taken 2 weeks before - 1 didn't appear to have had a shadow copy taken while our application was running Regards, Rob. -- 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 h2-database+unsubscr...@googlegroups.com. To post to this group, send email to h2-database@googlegroups.com. Visit this group at http://groups.google.com/group/h2-database. For more options, visit https://groups.google.com/d/optout.
java.lang.RuntimeException: org.h2.jdbc.JdbcSQLException: General error: "java.lang.RuntimeException: log.removeUntil not found: 4095476 last 4082052"; SQL statement: COMMIT [50000-176] [...] at java.lang.Thread.run(Thread.java:745) Caused by: org.h2.jdbc.JdbcSQLException: General error: "java.lang.RuntimeException: log.removeUntil not found: 4095476 last 4082052"; SQL statement: COMMIT [50000-176] at org.h2.message.DbException.getJdbcSQLException(DbException.java:344) at org.h2.message.DbException.get(DbException.java:167) at org.h2.message.DbException.convert(DbException.java:294) at org.h2.message.DbException.toSQLException(DbException.java:267) at org.h2.message.TraceObject.logAndConvert(TraceObject.java:372) at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:149) at org.h2.store.LobStorageBackend.setTable(LobStorageBackend.java:595) at org.h2.value.ValueLobDb.unlink(ValueLobDb.java:236) at org.h2.engine.Session.endTransaction(Session.java:547) at org.h2.engine.Session.commit(Session.java:532) 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:254) at org.h2.jdbc.JdbcConnection.commit(JdbcConnection.java:467) [...] ... 4 more Caused by: java.lang.RuntimeException: log.removeUntil not found: 4095476 last 4082052 at org.h2.message.DbException.throwInternalError(DbException.java:241) at org.h2.store.PageLog.removeUntil(PageLog.java:750) at org.h2.store.PageLog.removeUntil(PageLog.java:725) at org.h2.store.PageStore.checkpoint(PageStore.java:441) at org.h2.store.PageStore.commit(PageStore.java:1481) at org.h2.engine.Database.commit(Database.java:1926) at org.h2.engine.Session.commit(Session.java:494) at org.h2.command.Command.stop(Command.java:152) at org.h2.command.Command.executeUpdate(Command.java:284) at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:158) at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:144) ... 13 more