Details
-
Bug
-
Status: Open (View Workflow)
-
Critical
-
Resolution: Unresolved
-
None
-
None
-
None
Description
Currently, when using mariadb-binlog to replay a binary log onto a server (via piping output to the mariadb client, i.e mariadb-binlog | mariadb), binlog events are often executed using separate paths than the slave applier logic. This results in multiple different code paths needing to be updated when specific logic is required to apply the event correctly. This makes it hard to ensure that mariadb-binlog re-execution will be consistent with a slave applier thread, increasing the chances of bugs for a given mariadb-binlog replay.
Instead, the code path taken to apply events by mariadb-binlog | mariadb should be the same logic that the slave applier takes, to ensure application is consistent. knielsen suggests using the existing BINLOG SQL statement to do so, as is done for row events.
For backwards compatibility, we probably can't yet remove any existing logic
Attachments
Issue Links
- relates to
-
MDEV-22936 Assertions `m_curr_row <= m_rows_end' and `(*(map)->last_word_ptr & (map)->last_bit_mask) == 0', SEGV's in table_def::calc_field_size and process_str_arg, and errors 171, 1030, 1105, 1223, 1296, 1429, 1610 and 12701
-
- Confirmed
-
-
MDEV-33563 ASAN heap-buffer-overflow in table_def::calc_field_size | unpack_row
-
- Confirmed
-