Did anybody get the chance to look at this problem? Would be nice to get 
some pointers. Any help would be much appreciated.

On Tuesday, 24 April 2018 12:22:40 UTC+2, Behroz Sikander wrote:
>
> We are using h2, 1.3.176 and updating the version to the latest one is a 
> bit 
> difficult now but if there is no option then we can consider it. 
>
> Our connection string looks like 
> *jdbc:h2:tcp://<address>//my/path/to/db;MAX_LOG_SIZE=300;AUTO_SERVER=TRUE*
>
>
>
> *I have an H2 database with 5 tables, 1 of the table is storing BLOBs. 
> Last day, out of the blue the DB stopped responding. We see the 
> following exception.*
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *General error: "java.lang.RuntimeException: page[2837974] data leaf 
> table:10 T10 entries:1 parent:2837272 overflow:2837451 keys:[2234666] 
> offsets:[21] parent 2837272 expected 2816832" [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.engine.Database.openDatabase(Database.java:291)         at 
> org.h2.engine.Database.<init>(Database.java:254)         at 
> org.h2.engine.Engine.openSession(Engine.java:57)         at 
> org.h2.engine.Engine.openSession(Engine.java:164)         at 
> org.h2.engine.Engine.createSessionAndValidate(Engine.java:142)         at 
> org.h2.engine.Engine.createSession(Engine.java:125)         at 
> org.h2.server.TcpServerThread.run(TcpServerThread.java:150)         at 
> java.lang.Thread.run(Thread.java:808) Caused by: 
> java.lang.RuntimeException: page[2837974] data leaf table:10 T10 entries:1 
> parent:2837272 overflow:2837451 keys:[2234666] offsets:[21] parent 2837272 
> expected 2816832         at 
> org.h2.message.DbException.throwInternalError(DbException.java:241)         
> at org.h2.index.PageDataIndex.getPage(PageDataIndex.java:247)         at 
> org.h2.index.PageDataNode.getLastKey(PageDataNode.java:215)         at 
> org.h2.index.PageDataNode.getLastKey(PageDataNode.java:215)         at 
> org.h2.index.PageDataNode.getLastKey(PageDataNode.java:215)         at 
> org.h2.index.PageDataIndex.<init>(PageDataIndex.java:88)         at 
> org.h2.table.RegularTable.<init>(RegularTable.java:84)         at 
> org.h2.store.PageStore.addMeta(PageStore.java:1693)         at 
> org.h2.store.PageStore.readMetaData(PageStore.java:1624)         at 
> org.h2.store.PageStore.recover(PageStore.java:1406)         at 
> org.h2.store.PageStore.openExisting(PageStore.java:368)         at 
> org.h2.store.PageStore.open(PageStore.java:289)         at 
> org.h2.engine.Database.getPageStore(Database.java:2366)         at 
> org.h2.engine.Database.open(Database.java:657)         at 
> org.h2.engine.Database.openDatabase(Database.java:260)         ... 7 more   
>       at org.h2.engine.SessionRemote.done(SessionRemote.java:606)         
> at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:129)         
> at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:430)       
>   at 
> org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:311)   
>       at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:107)         
> at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:91)         at 
> org.h2.Driver.connect(Driver.java:74)         at 
> slick.jdbc.DriverDataSource.getConnection(DriverDataSource.scala:98)       
>   at 
> slick.jdbc.DataSourceJdbcDataSource.createConnection(JdbcDataSource.scala:64) 
>   
>       at 
> slick.jdbc.JdbcBackend$BaseSession.conn$lzycompute(JdbcBackend.scala:415)   
>       at slick.jdbc.JdbcBackend$BaseSession.conn(JdbcBackend.scala:414)     
>     at 
> slick.jdbc.JdbcBackend$BaseSession.startInTransaction(JdbcBackend.scala:437)  
>  
>       at 
> slick.driver.JdbcActionComponent$StartTransaction$.run(JdbcActionComponent.scala:41)
>    
>       at 
> slick.driver.JdbcActionComponent$StartTransaction$.run(JdbcActionComponent.scala:38)
>    
>       at 
> slick.backend.DatabaseComponent$DatabaseDef$$anon$2.liftedTree1$1(DatabaseComponent.scala:237)
>    
>       at 
> slick.backend.DatabaseComponent$DatabaseDef$$anon$2.run(DatabaseComponent.scala:237)
>    
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>    
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>    
>       at java.lang.Thread.run(Thread.java:808) *
>
>
> *Here is the transaction log statistics outputted by the recover tool*
>
>
>
>
>
>
>
>
>
>
>
>
> *---- Transaction log ---- ---- Statistics ---- -- page count: 2877737, 
> free: 17860 -- page data bytes: head 7550672, empty 17835363, rows 
> 596255693 (98% full)-- free 0%, 1825 page(s) -- data leaf 10%, 303536 
> page(s) -- data node 0%, 2694 page(s) -- data overflow 88%, 2544303 
> page(s) -- btree leaf 0%, 6618 page(s) -- btree node 0%, 189 page(s) -- 
> free list 0%, 176 page(s) -- stream trunk 0%, 41 page(s) -- stream data 0%, 
> 18352 page(s)*
>
> *I tried to recover the database using the recover tool + runscript but it 
> also ended up with an exception.*
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> *04-23 16:25:45 jdbc[3]: exception org.h2.jdbc.JdbcSQLException: Column 
> count does not match; SQL statement: -- page 2161970: data overflow 
> (last) -- page 2161971: data overflow -- page 2161972: data overflow -- 
> page 2161973: data overflow -- page 2161974: data overflow -- page 2161975: 
> data overflow -- page 2161976: data overflow -- page 2161977: data 
> overflow -- page 2161978: data overflow -- page 2161979: data leaf parent: 
> 2164239 table: 10 entries: 1 columns: 3 --   next: 2161980 -- ERROR 
> [2161979] child[0]: 2161980 parent: 2160633 -- ERROR: type: 1 storageId: 10 
> recordLength: 3 valueId: 3 ....... ....... -- dump:  01 a2 fe 00 20 f7 f9 
> 0a 03 00 01 00 20 fd 3a 86 8b 4e 00 14 05 86 8b 4e 20 0c a0 9c 01 55 f8 83 
> 5a e7 9f 36 90 0f 6a 1f 30 e8 00 5e c3 65 7a 6d c0 55 eb 65 bc a1 56 4d c1 
> 31 c9 98 ce e2 04 56 60 31 e4 17 09 c5 25 14 09 c4 31 a4 51 42 85 a7 18 ef 
> 16 58 ef 37 c1 fa 0d 81 af c2 a4 f6 6b 4c 8a bc a1 71 af 01 6e 43 db 2a b5 
> 35 74 94 29 93 e0 4e ab c4 9f 22 82 a7 e9 d3 19 4a cf 12 db 41 4e 
> e2 ....... ....... -- ERROR: exception 
> java.lang.ArrayIndexOutOfBoundsException: while trying to copy from index 
> 20029 of a type array with length 2048 storageId: 10 recordLength: 3 
> valueId: 2 ....... INSERT INTO O_10 VALUES(1272066, 0) [21002-176]         
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)     
>     at org.h2.message.DbException.get(DbException.java:178)         at 
> org.h2.message.DbException.get(DbException.java:154)         at 
> org.h2.message.DbException.get(DbException.java:143)         at 
> org.h2.command.dml.Insert.prepare(Insert.java:266)         at 
> org.h2.command.Parser.prepareCommand(Parser.java:248)         at 
> org.h2.engine.Session.prepareLocal(Session.java:442)         at 
> org.h2.engine.Session.prepareCommand(Session.java:384)         at 
> org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1188)         
> at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:172)       
>   at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:160)         at 
> org.h2.tools.RunScript.process(RunScript.java:261)         at 
> org.h2.tools.RunScript.process(RunScript.java:191)         at 
> org.h2.tools.RunScript.process(RunScript.java:329)         at 
> org.h2.tools.RunScript.runTool(RunScript.java:142)         at 
> org.h2.tools.RunScript.main(RunScript.java:69)*
>
>
>
> Could some please guide me what went wrong? how to avoid this in future 
> and how to recover the database?
>

-- 
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.

Reply via email to