Hi Team,

We are getting lot of H2 database corruption cases from clients. Kindly 
help us to provide some information to address this issue. 

We tried the Recovery of corrupted DB but we could not recover.

Please find below the details of our system.

H2 version : *1.3.169* 
Java version : *1.6.0_21*
H2 DB connection URL : *jdbc:h2:<H2 DB file 
path>;CIPHER=AES;MVCC=TRUE;AUTO_SERVER=TRUE* 
H2 DB file size : *289 MB* 
OS : *Windows 7,8.1 & 10* 



*Exceptions:*

1. org.hibernate.exception.GenericJDBCException: Cannot open connection

2. org.apache.commons.dbcp.SQLNestedException: Cannot create 
PoolableConnectionFactory (General error: "java.lang.RuntimeException: 
old!=record pos:196012 old:page[196012] data leaf overflow parent:196011 
next:0 new:page[196012] data leaf table:10 T10 entries:0 parent:194682 
keys:null offsets:null" [50000-169])

3. org.h2.jdbc.JdbcSQLException: General error: 
"java.lang.RuntimeException: old!=record pos:196012 old:page[196012] data 
leaf overflow parent:196011 next:0 new:page[196012] data leaf table:10 T10 
entries:0 parent:194682 keys:null offsets:null" [50000-169]

4. java.lang.RuntimeException: old!=record pos:196012 old:page[196012] data 
leaf overflow parent:196011 next:0 new:page[196012] data leaf table:10 T10 
entries:0 parent:194682 keys:null offsets:null

Awaiting for your valuable feedback.

-- 
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 https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.
org.hibernate.exception.GenericJDBCException: Cannot open connection
        at 
org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
        at 
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
        at 
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at 
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
        at 
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
        at 
org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
        at 
org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
        at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
        at org.hibernate.loader.Loader.doQuery(Loader.java:673)
        at 
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
        at org.hibernate.loader.Loader.doList(Loader.java:2213)
        at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
        at org.hibernate.loader.Loader.list(Loader.java:2099)
        at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
        at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
        at 
org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
        at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
        at 
com.lifeisgreat.emas.core.comp.security.SecurityDaoImpl.getUserByUserName(Unknown
 Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309)
        at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:196)
        at $Proxy22.getUserByUserName(Unknown Source)
        at 
com.lifeisgreat.emas.core.comp.security.DAOAuthenticator.getUserDetails(Unknown 
Source)
        at 
com.lifeisgreat.emas.core.comp.security.CustomAuthenticationProvider.retrieveUser(Unknown
 Source)
        at 
org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:129)
        at 
org.springframework.security.authentication.ProviderManager.doAuthentication(ProviderManager.java:130)
        at 
org.springframework.security.authentication.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:48)
        at 
org.springframework.security.authentication.ProviderManager.doAuthentication(ProviderManager.java:148)
        at 
org.springframework.security.authentication.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:48)
        at 
org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:97)
        at 
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
        at 
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
        at 
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
        at 
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
        at 
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
        at 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
        at 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
        at 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot create 
PoolableConnectionFactory (General error: "java.lang.RuntimeException: 
old!=record pos:196012 old:page[196012] data leaf overflow parent:196011 next:0 
new:page[196012] data leaf table:10 T10 entries:0 parent:194682 keys:null 
offsets:null" [50000-169])
        at 
org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)
        at 
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
        at 
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
        at 
org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
        at 
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
        ... 53 more
Caused by: org.h2.jdbc.JdbcSQLException: General error: 
"java.lang.RuntimeException: old!=record pos:196012 old:page[196012] data leaf 
overflow parent:196011 next:0 new:page[196012] data leaf table:10 T10 entries:0 
parent:194682 keys:null offsets:null" [50000-169]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:329)
        at org.h2.message.DbException.get(DbException.java:158)
        at org.h2.message.DbException.convert(DbException.java:281)
        at org.h2.table.RegularTable.addRow(RegularTable.java:139)
        at org.h2.store.PageStore.redo(PageStore.java:1531)
        at org.h2.store.PageLog.recover(PageLog.java:319)
        at org.h2.store.PageStore.recover(PageStore.java:1365)
        at org.h2.store.PageStore.openExisting(PageStore.java:361)
        at org.h2.store.PageStore.open(PageStore.java:285)
        at org.h2.engine.Database.getPageStore(Database.java:2118)
        at org.h2.engine.Database.open(Database.java:577)
        at org.h2.engine.Database.openDatabase(Database.java:222)
        at org.h2.engine.Database.<init>(Database.java:217)
        at org.h2.engine.Engine.openSession(Engine.java:56)
        at org.h2.engine.Engine.openSession(Engine.java:159)
        at org.h2.engine.Engine.createSessionAndValidate(Engine.java:138)
        at org.h2.engine.Engine.createSession(Engine.java:121)
        at org.h2.engine.Engine.createSession(Engine.java:28)
        at 
org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:305)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:109)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:93)
        at org.h2.Driver.connect(Driver.java:72)
        at 
org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
        at 
org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
        at 
org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
        at 
org.apache.commons.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1545)
        ... 57 more
Caused by: java.lang.RuntimeException: old!=record pos:196012 old:page[196012] 
data leaf overflow parent:196011 next:0 new:page[196012] data leaf table:10 T10 
entries:0 parent:194682 keys:null offsets:null
        at org.h2.message.DbException.throwInternalError(DbException.java:228)
        at org.h2.util.CacheLRU.update(CacheLRU.java:121)
        at org.h2.store.PageStore.update(PageStore.java:1059)
        at org.h2.index.PageDataNode.addRowTry(PageDataNode.java:139)
        at org.h2.index.PageDataNode.addRowTry(PageDataNode.java:129)
        at org.h2.index.PageDataIndex.addTry(PageDataIndex.java:167)
        at org.h2.index.PageDataIndex.add(PageDataIndex.java:130)
        at org.h2.table.RegularTable.addRow(RegularTable.java:121)
        ... 79 more

Reply via email to