mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
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>
This commit is contained in:
@@ -939,8 +939,15 @@ rpl_slave_state::gtid_delete_pending(THD *thd,
|
||||
table->rpl_write_set= table->write_set;
|
||||
|
||||
/* Now delete any already committed GTIDs. */
|
||||
bitmap_set_bit(table->read_set, table->field[0]->field_index);
|
||||
bitmap_set_bit(table->read_set, table->field[1]->field_index);
|
||||
#ifdef HAVE_REPLICATION
|
||||
if (unlikely(table->s->online_alter_binlog))
|
||||
bitmap_set_all(table->read_set);
|
||||
else
|
||||
#endif
|
||||
{
|
||||
bitmap_set_bit(table->read_set, table->field[0]->field_index);
|
||||
bitmap_set_bit(table->read_set, table->field[1]->field_index);
|
||||
}
|
||||
|
||||
if (!direct_pos)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user