1
0
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:
Kristian Nielsen
2025-09-07 09:41:46 +02:00
parent c779542840
commit fc37cdd64f

View File

@@ -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)
{