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

Reply via email to