Bug #44224 Falcon crash in Table::fetchNext
Submitted: 12 Apr 2009 15:54 Modified: 15 May 2009 14:50
Reporter: Philip Stoev Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Falcon storage engine Severity:S2 (Serious)
Version:6.0-falcon-team OS:Any
Assigned to: Kevin Lewis CPU Architecture:Any
Triage: Triaged: D1 (Critical)

[12 Apr 2009 15:54] Philip Stoev
Description:
In 2 out of 60 RQG test runs, Falcon crashed as follows:

# 07:38:17 #4  0x00000000009a708b in Table::fetchNext (this=0x2aaaaadbfc88, start=0)
# 07:38:17     at Table.cpp:603
# 07:38:17 #5  0x000000000098e41e in StorageDatabase::nextRow (this=0x2aaaaaded210,
# 07:38:17     storageTable=0x72ef698, recordNumber=0, lockForUpdate=true)
# 07:38:17     at StorageDatabase.cpp:286
# 07:38:17 #6  0x0000000000995415 in StorageTable::next (this=0x72ef698, recordNumber=0,
# 07:38:17     lockForUpdate=true) at StorageTable.cpp:161
# 07:38:17 #7  0x000000000097d083 in StorageInterface::rnd_next (this=0x725cf08,
# 07:38:17     buf=0x721d438 "О©Ґ") at ha_falcon.cpp:653
# 07:38:17 #8  0x0000000000828189 in ha_partition::rnd_next (this=0x71ff698,
# 07:38:17     buf=0x721d438 "О©Ґ") at ha_partition.cc:3558
# 07:38:17 #9  0x00000000008181eb in find_all_keys (param=0x4f1930f0,
# 07:38:17     select=0x2aaab001fa58, sort_keys=0x77a86a0, buffpek_pointers=0x4f192dd0,
# 07:38:17     tempfile=0x4f192f60, indexfile=0x0) at filesort.cc:587
# 07:38:17 #10 0x0000000000818d19 in filesort (thd=0x71a2500, table=0x724c720,
# 07:38:17     sortorder=0x2aaab001fc38, s_length=2, select=0x2aaab001fa58,
# 07:38:17     max_rows=18446744073709551615, sort_positions=true,
# 07:38:17     examined_rows=0x4f1935a0) at filesort.cc:245
# 07:38:17 #11 0x000000000079aeea in mysql_update (thd=0x71a2500,
# 07:38:17     table_list=0x2aaab001eb48, fields=@0x71a44f8, values=@0x71a4908,
# 07:38:17     conds=0x2aaab001f488, order_num=2, order=0x2aaab001f748,
# 07:38:17     limit=18446744073709551615, handle_duplicates=DUP_ERROR, ignore=false)
# 07:38:17     at sql_update.cc:426
# 07:38:17 #12 0x00000000006d6c45 in mysql_execute_command (thd=0x71a2500)
# 07:38:17     at sql_parse.cc:3123
# 07:38:17 #13 0x00000000006dc680 in mysql_parse (thd=0x71a2500,
# 07:38:17     inBuf=0x2aaab001e818 "UPDATE `table100_falcon_key_pk_parts_2_varchar_1024_not_null` SET `pk` = 3 WHERE `varchar_1024_latin1` = 'rkrk' ORDER BY$
# 07:38:17     at sql_parse.cc:5909
# 07:38:17 #14 0x00000000006dd7fd in dispatch_command (command=COM_QUERY, thd=0x71a2500,
# 07:38:17     packet=0x71acee1 "UPDATE `table100_falcon_key_pk_parts_2_varchar_1024_not_null` SET `pk` = 3 WHERE `varchar_1024_latin1` = 'rkrk' ORDER BY `va$
# 07:38:17 #15 0x00000000006decfa in do_command (thd=0x71a2500) at sql_parse.cc:731

How to repeat:
Those were the RQG commands that caused the crash. The core will be uploaded shortly:

 perl runall.pl    --engine=Falcon   --reporters=Deadlock,ErrorLog,Backtrace,Recovery,Shutdown   --mysqld=--loose-falcon-lock-wait-timeout=1   --mysqld=--loose-innodb-lock-wait-timeout=1   --mysqld=--log-output=none   --mysqld=--skip-safemalloc   --mysqld=--falcon-page-size=2K --rows=100 --threads=16 --mysqld=--falcon-consistent=read=1 --varchar-length=0   --mask=26271   --queries=100000000   --duration=900   --basedir=/export/home/pb2/test/sb_1-462247-1239511953.98/mysql-6.0.11-alpha-linux-x86_64-test  --gendata=conf/varchar.zz  --grammar=conf/varchar.yy 

perl runall.pl    --engine=Falcon   --reporters=Deadlock,ErrorLog,Backtrace,Recovery,Shutdown   --mysqld=--loose-falcon-lock-wait-timeout=1   --mysqld=--loose-innodb-lock-wait-timeout=1   --mysqld=--log-output=none   --mysqld=--skip-safemalloc   --mysqld=--falcon-page-size=2K --rows=10 --threads=4 --mysqld=--falcon-index-chill-threshold=1 --varchar-length=1024   --mask=61547   --queries=100000000   --duration=900   --basedir=/export/home/pb2/test/sb_1-462247-1239511953.98/mysql-6.0.11-alpha-linux-x86_64-test  --gendata=conf/varchar.zz  --grammar=conf/varchar.yy
[13 Apr 2009 14:42] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/71938

3117 Kevin Lewis	2009-04-13
      Bug#44224 - In 2 out of 60 RQG test runs, Falcon crashed on this line;
      Table::fetchNext   at Table.cpp:603
      if ((record = records->fetch(bitNumber)))
      Should be this;
      if (records && (record = records->fetch(bitNumber)))
[15 Apr 2009 17:00] Bugs System
Pushed into 6.0.11-alpha (revid:hky@sun.com-20090415164923-9arx29ye5pzxd4zf) (version source revid:kevin.lewis@sun.com-20090413144115-b1id4eo36giup2m8) (merge vers: 6.0.11-alpha) (pib:6)
[15 May 2009 14:50] MC Brown
Internal/test fix. No changelog entry required.