[MDEV-31677] Assertion `bitmap_is_set(cols, i)' failed upon online ALTER with binlog_row_image=NOBLOB Created: 2023-07-13  Updated: 2023-08-16  Resolved: 2023-08-16

Status: Closed
Project: MariaDB Server
Component/s: Data Definition - Alter Table
Affects Version/s: N/A
Fix Version/s: 11.2.1

Type: Bug Priority: Critical
Reporter: Elena Stepanova Assignee: Nikita Malyavin
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Problem/Incident
is caused by MDEV-16329 Engine-independent online ALTER TABLE Closed

 Description   

--source include/have_debug_sync.inc
 
SET binlog_row_image= NOBLOB;
 
CREATE TABLE t (id INT, a INT, b TEXT, PRIMARY KEY (id));
INSERT INTO t VALUES (1,10,''),(2,20,'');
 
--send
  SET debug_sync= 'now wait_for do_update';
 
--connect (con1,localhost,root,,)
SET debug_sync= 'alter_table_online_progress signal do_update wait_for go';
--send
  ALTER TABLE t FORCE, ALGORITHM=COPY, LOCK=NONE;
 
--connection default
--reap
UPDATE t SET a = 1;
SET debug_sync= 'now signal go';
 
--connection con1
--reap
 
# Cleanup
DROP TABLE t;
SET debug_sync= RESET;
--disconnect con1

bb-11.2-oalter f34c7419cb86

mariadbd: /data/src/bb-11.2-oalter-debug/sql/rpl_record.cc:440: int unpack_row(const rpl_group_info*, TABLE*, uint, const uchar*, const MY_BITMAP*, const uchar**, ulong*, const uchar*): Assertion `bitmap_is_set(cols, i)' failed.
230713 14:35:32 [ERROR] mysqld got signal 6 ;
 
#9  0x00007f967a053df2 in __GI___assert_fail (assertion=0x562296ce65d8 "bitmap_is_set(cols, i)", file=0x562296ce61a8 "/data/src/bb-11.2-oalter-debug/sql/rpl_record.cc", line=440, function=0x562296ce6468 "int unpack_row(const rpl_group_info*, TABLE*, uint, const uchar*, const MY_BITMAP*, const uchar**, ulong*, const uchar*)") at ./assert/assert.c:101
#10 0x00005622962393bb in unpack_row (rgi=0x7f9674850fb0, table=0x7f965801ed48, colcnt=3, row_data=0x7f9658026768 "\374\001", cols=0x7f96580265f8, current_row_end=0x7f967484f5b8, master_reclength=0x7f9658026630, row_end=0x7f9658026790 "h4z\025\217\217\217\217\365") at /data/src/bb-11.2-oalter-debug/sql/rpl_record.cc:440
#11 0x0000562296231b16 in Rows_log_event::find_key (this=0x7f9658026578, rgi=0x7f9674850fb0) at /data/src/bb-11.2-oalter-debug/sql/log_event_server.cc:7232
#12 0x0000562296233950 in Update_rows_log_event::do_before_row_operations (this=0x7f9658026578, rgi=0x7f9674850fb0) at /data/src/bb-11.2-oalter-debug/sql/log_event_server.cc:7872
#13 0x000056229622a6ec in Rows_log_event::do_apply_event (this=0x7f9658026578, rgi=0x7f9674850fb0) at /data/src/bb-11.2-oalter-debug/sql/log_event_server.cc:5085
#14 0x0000562296214a8c in Log_event::apply_event (this=0x7f9658026578, rgi=0x7f9674850fb0) at /data/src/bb-11.2-oalter-debug/sql/log_event.cc:3861
#15 0x0000562295db0597 in online_alter_read_from_binlog (thd=0x7f9658000dc8, rgi=0x7f9674850fb0, log=0x7f9658027960) at /data/src/bb-11.2-oalter-debug/sql/sql_table.cc:11671
#16 0x0000562295db234e in copy_data_between_tables (thd=0x7f9658000dc8, from=0x7f9664042ab8, to=0x7f965801ed48, create=..., ignore=false, order_num=0, order=0x0, copied=0x7f9674854ea8, deleted=0x7f9674854eb0, keys_onoff=Alter_info::LEAVE_AS_IS, alter_ctx=0x7f9674856440, online=true) at /data/src/bb-11.2-oalter-debug/sql/sql_table.cc:12111
#17 0x0000562295daea79 in mysql_alter_table (thd=0x7f9658000dc8, new_db=0x7f9658005af0, new_name=0x7f9658005f40, create_info=0x7f9674857260, table_list=0x7f9658014110, recreate_info=0x7f9674857130, alter_info=0x7f9674857170, order_num=0, order=0x0, ignore=false, if_exists=false) at /data/src/bb-11.2-oalter-debug/sql/sql_table.cc:11137
#18 0x0000562295e6f305 in Sql_cmd_alter_table::execute (this=0x7f9658014838, thd=0x7f9658000dc8) at /data/src/bb-11.2-oalter-debug/sql/sql_alter.cc:571
#19 0x0000562295c784e2 in mysql_execute_command (thd=0x7f9658000dc8, is_called_from_prepared_stmt=false) at /data/src/bb-11.2-oalter-debug/sql/sql_parse.cc:5764
#20 0x0000562295c7e60f in mysql_parse (thd=0x7f9658000dc8, rawbuf=0x7f9658014010 "ALTER TABLE t FORCE, ALGORITHM=COPY, LOCK=NONE", length=46, parser_state=0x7f9674858370) at /data/src/bb-11.2-oalter-debug/sql/sql_parse.cc:7772
#21 0x0000562295c6b27f in dispatch_command (command=COM_QUERY, thd=0x7f9658000dc8, packet=0x7f965800baa9 "", packet_length=46, blocking=true) at /data/src/bb-11.2-oalter-debug/sql/sql_parse.cc:1892
#22 0x0000562295c69bd8 in do_command (thd=0x7f9658000dc8, blocking=true) at /data/src/bb-11.2-oalter-debug/sql/sql_parse.cc:1405
#23 0x0000562295e63440 in do_handle_one_connection (connect=0x562298aafb98, put_in_cache=true) at /data/src/bb-11.2-oalter-debug/sql/sql_connect.cc:1416
#24 0x0000562295e631b5 in handle_one_connection (arg=0x562298aafb98) at /data/src/bb-11.2-oalter-debug/sql/sql_connect.cc:1318
#25 0x00005622963a756c in pfs_spawn_thread (arg=0x562298aafc78) at /data/src/bb-11.2-oalter-debug/storage/perfschema/pfs.cc:2201
#26 0x00007f967a0a7fd4 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
#27 0x00007f967a1285bc in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81



 Comments   
Comment by Nikita Malyavin [ 2023-07-19 ]

please review commit b1509e50a

Generated at Thu Feb 08 10:25:39 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.