Bug #32862 | Falcon: Inserting a duplicate key leads to assertion | ||
---|---|---|---|
Submitted: | 30 Nov 2007 2:25 | Modified: | 3 Dec 2007 14:23 |
Reporter: | Hakan Küçükyılmaz | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Falcon storage engine | Severity: | S1 (Critical) |
Version: | 6.0-falcon-team bk | OS: | Linux |
Assigned to: | Kevin Lewis | CPU Architecture: | Any |
[30 Nov 2007 2:25]
Hakan Küçükyılmaz
[30 Nov 2007 17:03]
Kevin Lewis
Normally, a record version that has been chilled is thawed during the call to fetchVersion, which makes a call to Record::getRecordData(). But in Table::checkUniqueRecordVersion(), the all the various record versions for a record number must be looked at, so there is NO call to fetchVersion(), and getRecordData() is not called. I added a call to dup->getRecordData() just before checking dup->hasRecord() to see if the recordVersion is deleted. This will keep the ASSERT reported in this bug from happening.
[30 Nov 2007 17:53]
Kevin Lewis
tested and pushed to mysql-6.0-falcon-team
[30 Nov 2007 19:23]
Hakan Küçükyılmaz
Works now without hitting the assertion: [20:22] root@test>insert into t2 values (1, 'cdeas'); ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY' 6.0.4-alpha
[3 Dec 2007 10:02]
Bugs System
Pushed into 6.0.4-alpha
[3 Dec 2007 14:23]
MC Brown
A note has been added to the 6.0.4 changelog: Using Falcon when accessing multiple versions of the same record, certain records could fail to be retrieved from the record cache, causing an assertion failure.