Bug #43297 Falcon ASSERT(ret) in Table::insert
Submitted: 2 Mar 2009 8:15 Modified: 7 Mar 2009 14:43
Reporter: Philip Stoev Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S1 (Critical)
Version:6.0-falcon-team OS:Any
Assigned to: CPU Architecture:Any

[2 Mar 2009 8:15] Philip Stoev
Description:
When executing a random RQG workload, Falcon asserted with the following assert under numerous different workloads

#7  0x00000000009e775b in Error::assertionFailed (text=0xe42daf "ret", fileName=0xe41cc1 "Table.cpp", line=3062) at Error.cpp:78
#8  0x00000000009972cd in Table::insert (this=0x7f11b75bdd18, transaction=0x7f118cdf8d18, stream=0x7f119fb0bd00) at Table.cpp:3062
#9  0x000000000097b209 in StorageDatabase::insert (this=0x7f11b71f2208, connection=0x7f11b7252388, table=0x7f11b75bdd18, stream=0x7f119fb0bd00)
    at StorageDatabase.cpp:266
#10 0x000000000098249f in StorageTable::insert (this=0x7f119fb06760) at StorageTable.cpp:109
#11 0x0000000000974461 in StorageInterface::write_row (this=0x3bc89b0, buff=0x3bc8da0 "ЪЪЪ") at ha_falcon.cpp:1176
#12 0x00000000008167e1 in handler::ha_write_row (this=0x3bc89b0, buf=0x3bc8da0 "ЪЪЪ") at handler.cc:5500
#13 0x000000000082530f in ha_partition::write_row (this=0x7f11b0011ea0, buf=0x3bc8da0 "ЪЪЪ") at ha_partition.cc:3027
#14 0x00000000008167e1 in handler::ha_write_row (this=0x7f11b0011ea0, buf=0x3bc8da0 "ЪЪЪ") at handler.cc:5500
#15 0x000000000077d8e3 in write_record (thd=0x3b18408, table=0x7f11b0011558, info=0x7f1190ceb4e0) at sql_insert.cc:1383
#16 0x0000000000781e73 in mysql_insert (thd=0x3b18408, table_list=0x7f11b0004d80, fields=@0x3b1a6a0, values_list=@0x3b1a6e8, update_fields=@0x3b1a6d0,
    update_values=@0x3b1a6b8, duplic=DUP_REPLACE, ignore=false) at sql_insert.cc:836
#17 0x00000000006d77cb in mysql_execute_command (thd=0x3b18408) at sql_parse.cc:3122
#18 0x00000000006dcedd in mysql_parse (thd=0x3b18408,
    inBuf=0x7f11b0004b10 "REPLACE INTO `table10_falcon_key_pk_parts_2_int_autoinc` ( `enum_utf8_not_null_key` ) VALUES ( 'or' )", length=101,
    found_semicolon=0x7f1190cecf00) at sql_parse.cc:5752
#19 0x00000000006ddac8 in dispatch_command (command=COM_QUERY, thd=0x3b18408,
    packet=0x3b28209 "REPLACE INTO `table10_falcon_key_pk_parts_2_int_autoinc` ( `enum_utf8_not_null_key` ) VALUES ( 'or' )", packet_length=101)
    at sql_parse.cc:1009
#20 0x00000000006deff1 in do_command (thd=0x3b18408) at sql_parse.cc:691
#21 0x00000000006ccf71 in handle_one_connection (arg=0x3b18408) at sql_connect.cc:1146
#22 0x000000315b0073da in start_thread () from /lib64/libpthread.so.0
#23 0x000000315a4e627d in clone () from /lib64/libc.so.6

(gdb) list
3057
3058                    transaction->addRecord(record);
3059                    bool ret = insertIntoTree(record, NULL, recordNumber);
3060                    inserted = true;
3061                    insertIndexes(transaction, record);
3062                    ASSERT(ret);
3063                    record->state = recData;
3064                    record->release(REC_HISTORY);
3065                    }
3066            catch (...)

(gdb) print ret
$1 = false
(gdb) print record
$2 = (class RecordVersion *) 0x4231af8
(gdb) print recordNumber
$3 = 19880

How to repeat:
A test case will be provided shortly.
[7 Mar 2009 14:43] Philip Stoev
Duplicate of Bug#41661