List:Falcon Storage Engine« Previous MessageNext Message »
From:Christopher Powers Date:January 16 2009 6:46am
Subject:Bug#36631, "Assertion in SerialLogControl::nextRecord"
View as plain text  
Kevin,

This is the reopened chill/thaw stress test bug.

I can easily reproduce an assert in Record::getEncodedValue() that 
always occurs during a scavenge/record pruning (stack attached.)

At the time of the assert, the record state is 'recChilled', so that 
explains why getEncodedValue() fails. It appears that the record 'oldie' 
in Index::duplicateKey() gets chilled while it's being accessed.

Note that hasRecord() should have thawed the record. I added a second 
thaw to verify this, but the breakpoint never hit, so I think the record 
is being chilled during makeKey().


bool Index::duplicateKey(IndexKey *key, Record * record)
{
   for (Record *oldie = record; oldie; oldie = oldie->getPriorVersion())
     if (oldie->hasRecord())  <<<< will thaw record
       {
       IndexKey oldKey(this);
			
       if (oldie->state == recChilled)
         oldie->thaw();     <<<< breakpoint never hit
				
       makeKey (oldie, &oldKey); <<<< assertion here--chill< during 
makeKey??

       if (oldKey.isEqual(key))
         return true;
       }
   return false;
}
Thread
Bug#36631, "Assertion in SerialLogControl::nextRecord"Christopher Powers16 Jan
  • Re: Bug#36631, "Assertion in SerialLogControl::nextRecord"Christopher Powers16 Jan
  • Re: Bug#36631, "Assertion in SerialLogControl::nextRecord"Olav Sandstaa16 Jan
    • Re: Bug#36631, "Assertion in SerialLogControl::nextRecord"Christopher Powers16 Jan