[ 
https://issues.apache.org/jira/browse/DERBY-3607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12593988#action_12593988
 ] 

Kristian Waagan commented on DERBY-3607:
----------------------------------------

That's great Shahbaz.
I would appreciate if you kept running with the client driver for a while 
longer to be more certain that the corruption doesn't happen there.

I can't tell you for sure, but the theory is that something is interrupting the 
Derby threads when they are writing data to disk.
In previous cases we have seen lately, this something has been c3p0.

Note that this is just a theory, and we need to look further into it. Also, I 
do not know if the latest version of c3p0 has this "problem" or even if it is 
c3p0 causing the trouble.
I don't have the overview to tell what needs to be done, but in my opinion it 
seems Derby is not able to protect itself well enough from these kinds of 
actions (thread interruption).
If you have all your source code easily available, you could check if there is 
any code calling Thread.interrupt().

Another step, since you seem to be able to reproduce this pretty easy, is to 
instrument Derby with some debugging code checking if the threads are indeed 
interrupted.
Out of curiosity, is the software stack you are using freely available, so 
Derby developers could run it and provoke the error if they wish to do so?

> Invalid checksum error in Derby 10.3.2.1
> ----------------------------------------
>
>                 Key: DERBY-3607
>                 URL: https://issues.apache.org/jira/browse/DERBY-3607
>             Project: Derby
>          Issue Type: Bug
>          Components: SQL
>    Affects Versions: 10.3.2.1, 10.4.1.3
>         Environment: OS-WIN XP SP2, 1.86GHz, 2GB, JVM 1.5, disk caching 
> disabled, Hibernate 3.1.1.RC3,c3p0
>            Reporter: Shahbaz
>            Priority: Critical
>         Attachments: derby.log, hibernate.cfg.xml, hibernate.cfg.xml, 
> hibernate.cfg.xml
>
>
> I am getting this execption when ever I try to restart my application
> java.sql.SQLException: Invalid checksum on Page Page(0,Container(0, 2033)), 
> expected=2,731,401,932, on-disk version=2,375,776,513, page dump follows: Hex 
> dump:
> 00000000: 0076 0000 0001 0000 0000 0000 0002 0000  .v..............
> 00000010: 0000 0006 0000 0000 0000 0000 0000 0000  ................
> 00000020: 0000 0000 0001 0000 0000 0000 0000 0000  ................
> 00000030: 0000 0000 0000 0000 0000 0000 ffff ffff  ................
> 00000040: ffff ffff 0000 0000 0000 0000 0000 0000  ................
> 00000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
> 00000060: 0000 0000 0000 0000 0000 0000 5000 0000  ............P...
> at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown 
> Source)
>       at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown 
> Source)
>       at 
> org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown 
> Source)
>       at 
> org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown 
> Source)
>       at 
> org.apache.derby.impl.jdbc.EmbedCallableStatement.executeStatement(Unknown 
> Source)
>       at org.apache.derby.impl.jdbc.EmbedPreparedStatement.execute(Unknown 
> Source)
>       at 
> com.mchange.v2.c3p0.impl.NewProxyCallableStatement.execute(NewProxyCallableStatement.java:3044)
>       at 
> ae.sphere.arena.database.management.backup.BackupStategy.createBackup(BackupStategy.java:56)
>       at 
> ae.sphere.arena.database.management.backup.BackupStategy.doSchedulerJob(BackupStategy.java:41)
>       at 
> ae.sphere.arena.common.jobscheduler.Scheduler$1.run(Scheduler.java:49)
>       at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
> 00000070: 0000 0000 0000 0000 0000 0000 0000 0000  ................
> 00000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
> 00000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................
> 000000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
> 000000b0: 0000 0

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to