RecoveryLog.checkRecoveryLogConsistency is broken
-------------------------------------------------

         Key: SEQUOIA-1097
         URL: https://forge.continuent.org/jira/browse/SEQUOIA-1097
     Project: Sequoia
        Type: Bug

  Components: Recovery Log  
    Versions: sequoia 2.10.10    
    Reporter: Emmanuel Cecchet
 Assigned to: Emmanuel Cecchet 
     Fix For: sequoia 2.10.11, Sequoia 4.0


>From the mailing list:

It would appear that SEQUOIA-1029 has introduced a bug in 
RecoveryLog.checkRecoveryLogConsistency

where the SQL for looking for open transactions used to be (2.10.9):

      stmt = getDatabaseConnection().prepareStatement(
          "SELECT * FROM " + getLogTableName() + " R1 WHERE R1."
              + getLogTableSqlColumnName() + " LIKE ? AND NOT EXISTS ("
              + "select transaction_id FROM "
              + getLogTableName() + " R2 WHERE "
              + " R1.transaction_id = R2.transaction_id AND (R2."
              + getLogTableSqlColumnName()
              + " = ? OR R2." + getLogTableSqlColumnName() + " = ?) ) ");

with params BEGIN%, COMMIT, ROLLBACK

it's now:

      stmt = getDatabaseConnection().prepareStatement(
          "SELECT transaction_id FROM " + getLogTableName() + " r1 WHERE r1."
              + getLogTableSqlColumnName()
              + " LIKE ? AND NOT EXISTS (SELECT transaction_id FROM "
              + getLogTableName()
              + " r2 WHERE r1.transaction_id=r2.transaction_id AND (r1."
              + getLogTableSqlColumnName() + " LIKE ? OR r2."
              + getLogTableSqlColumnName() + " LIKE ?))");


However, note that in the OR bit:
(r1." + getLogTableSqlColumnName() + " LIKE ? OR r2." + 
getLogTableSqlColumnName() + " LIKE ? )
the first table name has become r1 where it was & ought to be r2.

the effect of which is that when I bring up sequoia, I get a warning in my log 
for every transaction that was committed, saying it wasn't completed & a 
rollback has been added to the recovery log.  As these are presumably committed 
before rollback upon recovery, I don't think it has any actual impact apart 
from a large amount of spurious logging...

   Many thanks,

   Andrew Lawrenson


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

_______________________________________________
Sequoia mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/sequoia

Reply via email to