Hi,

This doesn't sound good... Could you send me the database? Is this
problem reproducible with a fresh database? Some more questions:

- What is your database URL?
- Did you use multiple connections?
- With which version of H2 was this database created?
    You can find it out using:
    select * from information_schema.settings where name='CREATE_BUILD'
    or have a look in the SQL script created by the recover tool.
- Did the application run out of memory (once, or multiple times)?
- Do you use any settings or special features (for example, the setting
    LOG=0, or two phase commit, linked tables, cache settings)?
- Is the application multi-threaded?
- What operating system, file system, and virtual machine
    (java -version) do you use?
- Is it (or was it at some point) a networked file system?
- How big is the database (file sizes)?
- Is the database usually closed normally, or is process terminated
    forcefully or the computer switched off?
- Are there any other exceptions (maybe in the .trace.db file)?
    Could you send them please?
- Do you still have any .trace.db files, and if yes could you send them?

Regards,
Thomas

On Wed, Dec 9, 2009 at 4:57 AM, Kerry Sainsbury <ke...@fidelma.com> wrote:
> Hi Thomas,
>
> I've deployed the latest version of H2 and am encountering problems with
> rollback. I don't have a good test case, but here's the stack trace if it
> helps:
>
>  Could not roll back Hibernate transaction; nested exception is
> org.hibernate.TransactionException: JDBC rollback failed
>     [junit] org.springframework.transaction.TransactionSystemException:
> Could not roll back Hibernate transaction; nested exception is
> org.hibernate.TransactionException: JDBC rollback failed
>     [junit]     at
> org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:618)
>     [junit]     at
> org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:800)
>     [junit]     at
> org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:777)
>     [junit]     at
> org.springframework.test.context.transaction.TransactionalTestExecutionListener.endTransaction(TransactionalTestExecutionListener.java:353)
>     [junit]     at
> org.springframework.test.context.transaction.TransactionalTestExecutionListener.afterTestMethod(TransactionalTestExecutionListener.java:199)
>     [junit]     at
> org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:340)
>     [junit]     at
> org.springframework.test.context.junit4.SpringMethodRoadie.runAfters(SpringMethodRoadie.java:351)
>     [junit]     at
> org.springframework.test.context.junit4.SpringMethodRoadie.runBeforesThenTestThenAfters(SpringMethodRoadie.java:262)
>     [junit]     at
> org.springframework.test.context.junit4.SpringMethodRoadie.runWithRepetitions(SpringMethodRoadie.java:234)
>     [junit]     at
> org.springframework.test.context.junit4.SpringMethodRoadie.runTest(SpringMethodRoadie.java:204)
>     [junit]     at
> org.springframework.test.context.junit4.SpringMethodRoadie.run(SpringMethodRoadie.java:146)
>     [junit]     at
> org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:151)
>     [junit] Caused by: org.hibernate.TransactionException: JDBC rollback
> failed
>     [junit]     at
> org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:204)
>     [junit]     at
> org.springframework.orm.hibernate3.HibernateTransactionManager.doRollback(HibernateTransactionManager.java:615)
>     [junit] Caused by: org.h2.jdbc.JdbcSQLException: General error:
> "java.lang.ArrayIndexOutOfBoundsException: 194"; SQL statement:
>     [junit] ROLLBACK [50000-125]
>     [junit]     at org.h2.message.Message.getSQLException(Message.java:111)
>     [junit]     at org.h2.message.Message.convert(Message.java:288)
>     [junit]     at org.h2.table.TableData.removeRow(TableData.java:390)
>     [junit]     at org.h2.log.UndoLogRecord.undo(UndoLogRecord.java:105)
>     [junit]     at org.h2.engine.Session.rollbackTo(Session.java:530)
>     [junit]     at org.h2.engine.Session.rollback(Session.java:507)
>     [junit]     at
> org.h2.command.dml.TransactionCommand.update(TransactionCommand.java:125)
>     [junit]     at
> org.h2.command.CommandContainer.update(CommandContainer.java:71)
>     [junit]     at org.h2.command.Command.executeUpdate(Command.java:201)
>     [junit]     at
> org.h2.jdbc.JdbcConnection.rollbackInternal(JdbcConnection.java:1391)
>     [junit]     at
> org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java:432)
>     [junit]     at
> org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:217)
>     [junit]     at
> org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:196)
>     [junit] Caused by: java.lang.ArrayIndexOutOfBoundsException: 194
>     [junit]     at org.h2.index.PageBtree.getRow(PageBtree.java:167)
>     [junit]     at org.h2.index.PageBtreeLeaf.remove(PageBtreeLeaf.java:208)
>     [junit]     at org.h2.index.PageBtreeNode.remove(PageBtreeNode.java:325)
>     [junit]     at
> org.h2.index.PageBtreeIndex.remove(PageBtreeIndex.java:230)
>     [junit]     at org.h2.table.TableData.removeRow(TableData.java:371)
>
>
> This is not a problem in the 1.1.118 version of the code.
>
> Let me know if there's anything I can do to help.
>
> Cheers
> Kerry
>
> --
>
> You received this message because you are subscribed to the Google Groups
> "H2 Database" group.
> To post to this group, send email to h2-datab...@googlegroups.com.
> To unsubscribe from this group, send email to
> h2-database+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/h2-database?hl=en.
>

--

You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to h2-datab...@googlegroups.com.
To unsubscribe from this group, send email to 
h2-database+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.


Reply via email to