Bug #28046 Falcon crash on update of non PK column, if PK is auto_increment
Description:
Assertion is:
Program received signal SIGABRT, Aborted.
0xffffe410 in ?? ()
(gdb) where
0 0xffffe410 in ?? ()
1 0x4229138c in ?? ()
0000002 0x00000006 in ?? ()
0000003 0x40158b75 in abort () from /lib/tls/libc.so.6
0000004 0x40150903 in __assert_fail () from /lib/tls/libc.so.6
0000005 0x0824abdb in Field_longlong::val_int (this=0x9491ec0) at field.cc:3792
0000006 0x086b225b in NfsStorageTable::update_row (this=0x9491d60,
oldData=0x9491e98 "&65533;030", newData=0x9491e80 "&65533;030") at ha_falcon.cpp:544
0000007 0x0835c4c9 in handler::ha_update_row (this=0x9491d60,
old_data=0x9491e98 "&65533;030", new_data=0x9491e80 "&65533;030") at handler.cc:3359
0000008 0x082fe811 in mysql_update (thd=0x93fff98, table_list=0x9431448,
fields=@0x94002f4, values=@0x94004c8, conds=0x0, order_num=0, order=0x0,
limit=18446744073709551615, handle_duplicates=DUP_ERROR, ignore=false)
at sql_update.cc:528
0000009 0x0828f47d in mysql_execute_command (thd=0x93fff98) at sql_parse.cc:3260
0000010 0x08296072 in mysql_parse (thd=0x93fff98,
inBuf=0x94313c0 "update t1 set parent_id=parent_id+100", length=37)
at sql_parse.cc:5947
0000011 0x0828bbfd in dispatch_command (command=COM_QUERY, thd=0x93fff98,
packet=0x9429361 "update t1 set parent_id=parent_id+100", packet_length=38)
at sql_parse.cc:1764
0000012 0x0828b46c in do_command (thd=0x93fff98) at sql_parse.cc:1550
0000013 0x0828a5ea in handle_one_connection (arg=0x93fff98) at sql_parse.cc:1190
---Type <return> to continue, or q <return> to quit---
0000014 0x40253aa7 in start_thread () from /lib/tls/libpthread.so.0
0000015 0x401e9c2e in clone () from /lib/tls/libc.so.6
(gdb)
How to repeat:
drop table if exists t1;
# If I remove the auto_increment, the crash on the update disappers
CREATE TABLE t1 (
id BIGINT NOT NULL auto_increment,
parent_id BIGINT,
PRIMARY KEY (id)
) engine=Falcon;
INSERT INTO t1 VALUES (9,2),(24,4);
# This UPDATE gets a crash
update t1 set parent_id=parent_id+100;
---> crash
mysqld: field.cc:3792: virtual longlong Field_longlong::val_int(): Assertion `!t
able || (!table->read_set || bitmap_is_set(table->read_set, field_index))' failed.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.051 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: Assertion is: Program received signal SIGABRT, Aborted. 0xffffe410 in ?? () (gdb) where 0 0xffffe410 in ?? () 1 0x4229138c in ?? () 0000002 0x00000006 in ?? () 0000003 0x40158b75 in abort () from /lib/tls/libc.so.6 0000004 0x40150903 in __assert_fail () from /lib/tls/libc.so.6 0000005 0x0824abdb in Field_longlong::val_int (this=0x9491ec0) at field.cc:3792 0000006 0x086b225b in NfsStorageTable::update_row (this=0x9491d60, oldData=0x9491e98 "&65533;030", newData=0x9491e80 "&65533;030") at ha_falcon.cpp:544 0000007 0x0835c4c9 in handler::ha_update_row (this=0x9491d60, old_data=0x9491e98 "&65533;030", new_data=0x9491e80 "&65533;030") at handler.cc:3359 0000008 0x082fe811 in mysql_update (thd=0x93fff98, table_list=0x9431448, fields=@0x94002f4, values=@0x94004c8, conds=0x0, order_num=0, order=0x0, limit=18446744073709551615, handle_duplicates=DUP_ERROR, ignore=false) at sql_update.cc:528 0000009 0x0828f47d in mysql_execute_command (thd=0x93fff98) at sql_parse.cc:3260 0000010 0x08296072 in mysql_parse (thd=0x93fff98, inBuf=0x94313c0 "update t1 set parent_id=parent_id+100", length=37) at sql_parse.cc:5947 0000011 0x0828bbfd in dispatch_command (command=COM_QUERY, thd=0x93fff98, packet=0x9429361 "update t1 set parent_id=parent_id+100", packet_length=38) at sql_parse.cc:1764 0000012 0x0828b46c in do_command (thd=0x93fff98) at sql_parse.cc:1550 0000013 0x0828a5ea in handle_one_connection (arg=0x93fff98) at sql_parse.cc:1190 ---Type <return> to continue, or q <return> to quit--- 0000014 0x40253aa7 in start_thread () from /lib/tls/libpthread.so.0 0000015 0x401e9c2e in clone () from /lib/tls/libc.so.6 (gdb) How to repeat: drop table if exists t1; # If I remove the auto_increment, the crash on the update disappers CREATE TABLE t1 ( id BIGINT NOT NULL auto_increment, parent_id BIGINT, PRIMARY KEY (id) ) engine=Falcon; INSERT INTO t1 VALUES (9,2),(24,4); # This UPDATE gets a crash update t1 set parent_id=parent_id+100; ---> crash mysqld: field.cc:3792: virtual longlong Field_longlong::val_int(): Assertion `!t able || (!table->read_set || bitmap_is_set(table->read_set, field_index))' failed.