[ http://issues.apache.org/jira/browse/DERBY-1248?page=all ]

Mike Matrigali updated DERBY-1248:
----------------------------------


After a bit more thought the code can not throw an assert during undo based on 
page versions.  It may 
be perfectly valid to appy a version 400 undo record to a version 500 page, due 
to row level locking where
100 changes have committed but the 400th change needs to be undone.  So the 
only issue is that  in 
the recovery case on the backup it is seeing version 579 of the page, but the 
log is only up to version 
476 of the page.  

I have committed a new test OnlineBackupTest5.sql, which is the same as 
OnlineBackupTest4.sql except
that it restores the backup to a new location, leaving the evidence of the old 
db.  If this one reproduces the
problem it should be clear whether this is a backup problem, or a mainline 
recovery problem.  So far I have
not been able to reproduce on my hardware/os, would appreciate it if someone 
can iterate over the new 
test and post the results if it fails.

> Assert failure in BasePage.shiftUp() when running store/onlineBackupTest4.sql
> -----------------------------------------------------------------------------
>
>          Key: DERBY-1248
>          URL: http://issues.apache.org/jira/browse/DERBY-1248
>      Project: Derby
>         Type: Bug

>   Components: Store, Regression Test Failure
>     Versions: 10.2.0.0
>  Environment: Sun JVM 1.5.0_04 on Solaris 10 x86. Derby from trunk (revision 
> 396285). Sane build.
>     Reporter: Knut Anders Hatlen
>  Attachments: derby_335.log, linuxfailure.zip, solaris-singlecpu.zip, 
> solarisfailure.zip, storemore.zip, test2_379.jar, test335.jar
>
> I saw this error when I ran derbyall.
> ********* Diff file derbyall/storeall/storemore/onlineBackupTest4.diff
> *** Start: onlineBackupTest4 jdk1.5.0_04 storeall:storemore 2006-04-24 
> 11:51:50 ***
> 68 del
> < ij(CONNECTION1)> select * from ctest;
> 69 del
> < ID         |NAME                                                            
>                                                                 
> 70 del
> < 
> --------------------------------------------------------------------------------------------------------------------------------------------
> 71 del
> < 1          |derby backup/compress test                                      
>                                                                &
> 72 del
> < 2          |derby backup/compress test                                      
>                                                                &
> 73 del
> < 300        |derby backup/compress test                                      
>                                                                &
> 74 del
> < 509        |derby backup/compress test                                      
>                                                                &
> 75 del
> < 510        |derby backup/compress test                                      
>                                                                &
> 76 del
> < 511        |derby backup/compress test                                      
>                                                                &
> 77 del
> < 512        |derby backup/compress test                                      
>                                                                &
> 78 del
> < ij(CONNECTION1)> insert into ctest values(2000, 'restore was successfil') ;
> 79 del
> < 1 row inserted/updated/deleted
> 80 del
> < ij(CONNECTION1)> 
> 80 add
> > org.apache.derby.shared.common.sanity.AssertFailure: ASSERT FAILED shiftUp 
> > failed, low must be between 0 and recordCount.  low = 140, recordCount = 2
> > ERROR XJ040: Failed to start database 'wombat', see the next exception for 
> > details.
> > ERROR XJ001: Java exception: 'ASSERT FAILED shiftUp failed, low must be 
> > between 0 and recordCount.  low = 140, recordCount = 2: 
> > org.apache.derby.shared.common.sanity.AssertFailure'.
> > ij> select * from ctest;
> > IJ ERROR: Unable to establish connection
> > ij> insert into ctest values(2000, 'restore was successfil') ;
> > IJ ERROR: Unable to establish connection
> > ij> 
> Test Failed.
> *** End:   onlineBackupTest4 jdk1.5.0_04 storeall:storemore 2006-04-24 
> 11:51:56 ***
> The test usually succeeds, but I managed to reproduce the failure by running 
> this loop in the shell:
> touch onlineBackupTest4.pass
> while [ -f onlineBackupTest4.pass ]; do
>     rm onlineBackupTest4.pass
>     java org.apache.derbyTesting.functionTests.harness.RunTest 
> store/onlineBackupTest4.sql
> done

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to