Skip to content

Commit fc37cdd

Browse files
committed
MDEV-34134: Assertion failure in online_alter_log_row upon replicating REPAIR on mysql.gtid_slave_pos
The online alter code expects all columns set in table->read_set during the online alter. But code to ensure this was forgotten to be added in rpl_slave_state::gtid_delete_pending() (background cleanup job of table mysql.gtid_slave_pos). (Another, more general problem still remains, see MDEV-37573). Signed-off-by: Kristian Nielsen <knielsen@knielsen-hq.org>
1 parent c779542 commit fc37cdd

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

sql/rpl_gtid.cc

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -939,8 +939,15 @@ rpl_slave_state::gtid_delete_pending(THD *thd,
939939
table->rpl_write_set= table->write_set;
940940

941941
/* Now delete any already committed GTIDs. */
942-
bitmap_set_bit(table->read_set, table->field[0]->field_index);
943-
bitmap_set_bit(table->read_set, table->field[1]->field_index);
942+
#ifdef HAVE_REPLICATION
943+
if (unlikely(table->s->online_alter_binlog))
944+
bitmap_set_all(table->read_set);
945+
else
946+
#endif
947+
{
948+
bitmap_set_bit(table->read_set, table->field[0]->field_index);
949+
bitmap_set_bit(table->read_set, table->field[1]->field_index);
950+
}
944951

945952
if (!direct_pos)
946953
{

0 commit comments

Comments
 (0)