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/[email protected]/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 [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/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
