2014-11-24 12:29:50 7f673041e700 InnoDB: Assertion failure in thread 140081167984384 in file row0ins.cc line 276
InnoDB: Failing assertion: update->n_fields == 0
**** Testcase
DROP DATABASE test;CREATE DATABASE test;USE test;
CREATE TABLE t1(a INT KEY);
ALTER TABLE t1 ADD COLUMN b CHAR;
CREATE INDEX bx ON t1(b);
insert INTO t1 values(1,0x4100),(2,0x41);
SET innodb_fake_changes=1;
UPDATE t1 SET a=UPPER(a),b=LOWER(b);
*** GDB info
#0 0x00007f672fe2c771 in pthread_kill () from /lib64/libpthread.so.0
#1 0x000000000067679d in handle_fatal_signal (sig=6) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5
.6.21-70.0/sql/signal_handler.cc:236
#2 <signal handler called>
#3 0x00007f672ea305c9 in raise () from /lib64/libc.so.6
#4 0x00007f672ea31cd8 in abort () from /lib64/libc.so.6
#5 0x0000000000995e4d in row_ins_sec_index_entry_by_modify (mtr=0x7f673041ab40, thr=0x7f667747ed50, entry=0x7f672dc1b368, heap=0x7f66774a8a00, off
sets_heap=0x7f66774a8f00, offsets=0x7f673041a9a0, cursor=0x7f673041a9e0, mode=2, flags=0) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/storage/innobase/row/row0ins.cc:276
#6 row_ins_sec_index_entry_low (flags=flags@entry=0, mode=mode@entry=2, index=index@entry=0x7f667746a4e8, offsets_heap=offsets_heap@entry=0x7f66774a8f00, heap=heap@entry=0x7f66774a8a00, entry=entry@entry=0x7f672dc1b368, trx_id=trx_id@entry=0, thr=thr@entry=0x7f667747ed50) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/storage/innobase/row/row0ins.cc:2764
#7 0x00000000009974ab in row_ins_sec_index_entry (index=index@entry=0x7f667746a4e8, entry=0x7f672dc1b368, thr=thr@entry=0x7f667747ed50) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/storage/innobase/row/row0ins.cc:2958
#8 0x00000000009bbd36 in row_upd_sec_index_entry (node=node@entry=0x7f667747eaa0, thr=thr@entry=0x7f667747ed50) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/storage/innobase/row/row0upd.cc:1839
#9 0x00000000009bfdec in row_upd_sec_step (thr=<optimized out>, node=0x7f667747eaa0) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/storage/innobase/row/row0upd.cc:1866
#10 row_upd (thr=0x7f667747ed50, node=0x7f667747eaa0) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/storage/innobase/row/row0upd.cc:2569
#11 row_upd_step (thr=thr@entry=0x7f667747ed50) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/storage/innobase/row/row0upd.cc:2686
#12 0x00000000009a3947 in row_update_for_mysql (mysql_rec=mysql_rec@entry=0x7f6677499018 "\375\001", prebuilt=0x7f667747e068) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/storage/innobase/row/row0mysql.cc:1791
#13 0x000000000090bad9 in ha_innobase::update_row (this=0x7f66774a8510, old_row=0x7f6677499018 "\375\001", new_row=0x7f6677499010 "\375\001") at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/storage/innobase/handler/ha_innodb.cc:7768
#14 0x00000000005c1b84 in handler::ha_update_row (this=0x7f66774a8510, old_data=0x7f6677499018 "\375\001", new_data=0x7f6677499010 "\375\001") at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/sql/handler.cc:7691
#15 0x00000000007644f8 in mysql_update (thd=thd@entry=0x7f669f721000, table_list=<optimized out>, fields=..., values=..., conds=0x0, order_num=<optimized out>, order=<optimized out>, limit=18446744073709551615, handle_duplicates=DUP_ERROR, ignore=false, found_return=found_return@entry=0x7f673041bed0, updated_return=updated_return@entry=0x7f673041bf90) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/sql/sql_update.cc:818
#16 0x00000000006f84d4 in mysql_execute_command (thd=thd@entry=0x7f669f721000) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/sql/sql_parse.cc:3716
#17 0x00000000006fc0e8 in mysql_parse (thd=thd@entry=0x7f669f721000, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=0x7f673041d270) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/sql/sql_parse.cc:6777
#18 0x00000000006fd859 in dispatch_command (command=<optimized out>, thd=0x7f669f721000, packet=0x7f6693778001 "UPDATE t1 SET a=UPPER(a),b=LOWER(b)", packet_length=<optimized out>) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/sql/sql_parse.cc:1432
#19 0x00000000006ff5b9 in do_command (thd=<optimized out>) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/sql/sql_parse.cc:1049
#20 0x00000000006cb3c2 in do_handle_one_connection (thd_arg=thd_arg@entry=0x7f669f721000) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/sql/sql_connect.cc:1532
#21 0x00000000006cb4b0 in handle_one_connection (arg=arg@entry=0x7f669f721000) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/sql/sql_connect.cc:1443
#22 0x0000000000af86d3 in pfs_spawn_thread (arg=0x7f669f737340) at /mnt/workspace/percona-server-5.6-binaries-opt-yassl/label_exp/centos6-64/percona-server-5.6.21-70.0/storage/perfschema/pfs.cc:1860
#23 0x00007f672fe27df3 in start_thread () from /lib64/libpthread.so.0
#24 0x00007f672eaf101d in clone () from /lib64/libc.so.6
Bug exist in 5.5 too but has different point of the assert even though the core issue is same.