1
0
mirror of https://github.com/MariaDB/server.git synced 2026-10-23 18:49:29 +03:00
Files
mariadb/sql
Brandon Nesterenko 4c33c5e48e MDEV-39660 Replica Crashes on Malformed Partial_rows_log_event
If the first Partial_rows_log_event in a group provides an
original_event_size that is smaller than the actual size of the
underlying Rows_log_event, the slave will not allocate enough memory
to hold the actual Rows_log_event content, but still try to copy
that much memory, resulting in the slave crashing.

This patch adds validation checking for this condition, and will error
with code ER_PARTIAL_ROWS_LOG_EVENT_BAD_STREAM when detected.

Additionally:

* A new validation is added to ensure that the slave supports
re-constructing the size of the original event on the master (i.e. if
repliating from a 64-bit to a 32-bit system). A new test is added to
show the error message is correct. Note that the error code used here is
ER_OUTOFMEMORY, and that isn't exactly correct; but the actual error
isn't practical enough to warrant its own new error code.

* The error message for ER_PARTIAL_ROWS_LOG_EVENT_BAD_STREAM
is generalized to better support various types of broken streams. The
previous message was hard-coded to be about detecting out-of-sequence
fragments. The new message is updated to allow general "found %s" and
"expected %s" conditions.

Signed-off-by: Brandon Nesterenko <brandon.nesterenko@mariadb.com>
2026-05-20 09:07:35 -06:00
..
2025-03-14 12:08:56 +04:00
2025-10-25 00:19:11 +07:00
…
2024-08-12 09:32:30 +01:00
2025-07-28 21:29:29 +02:00
2024-11-05 14:00:48 -08:00
2025-09-29 18:25:09 +03:00
…
2025-03-14 12:08:56 +04:00
2025-03-14 12:08:56 +04:00
…
2024-12-02 11:35:34 +02:00
2024-12-02 17:51:17 +02:00
2026-01-31 14:08:54 +01:00
2024-10-30 15:11:17 +01:00
…
2026-01-31 14:08:54 +01:00
2024-12-02 11:35:34 +02:00
2026-03-24 09:49:17 +02:00
2026-03-24 09:49:17 +02:00
2026-03-24 09:49:17 +02:00
…
2024-11-08 07:17:00 +01:00
2026-03-24 09:49:17 +02:00
2024-11-29 13:43:17 +02:00
…
…
2024-12-05 10:11:58 +01:00
2026-02-07 22:12:32 +01:00
2026-02-03 14:53:15 +01:00
2026-04-02 09:15:17 +03:00
2026-02-03 14:53:15 +01:00
2026-02-03 14:53:15 +01:00
2026-02-07 22:12:32 +01:00
2026-02-03 14:53:15 +01:00
2026-03-24 09:49:17 +02:00
2026-01-31 14:08:54 +01:00
2026-04-01 15:03:59 +03:00
2026-04-02 09:15:17 +03:00
2026-01-08 12:02:45 +01:00
2024-07-08 22:40:16 +02:00
…
…
2025-03-14 12:08:56 +04:00
2026-04-02 09:15:17 +03:00
…
2024-10-03 15:59:20 +10:00
2026-03-24 09:49:17 +02:00
…
2025-03-14 12:08:56 +04:00
2024-05-30 16:04:00 +03:00
2025-04-29 11:18:00 +10:00
2026-03-24 09:49:17 +02:00
2025-04-02 14:07:01 +03:00
2026-02-06 17:46:51 +01:00
2026-02-03 14:53:15 +01:00
2026-03-24 09:49:17 +02:00
2026-04-02 09:15:17 +03:00
2026-02-03 14:53:15 +01:00
2024-06-24 13:09:47 +03:00
2026-03-27 07:33:06 +02:00
2026-01-31 14:08:54 +01:00
2026-04-02 09:15:17 +03:00
2026-02-03 14:53:15 +01:00
2025-09-29 18:25:09 +03:00
2024-07-22 15:14:50 +02:00
2026-02-07 22:12:32 +01:00
2026-02-07 22:06:40 +01:00
2025-07-31 20:55:47 +02:00
2026-02-07 22:06:40 +01:00
2026-03-23 11:57:44 +02:00
2025-03-14 12:08:56 +04:00
2026-04-02 09:15:17 +03:00
2026-02-06 17:46:50 +01:00
2025-11-04 12:39:27 +01:00
2026-02-06 17:46:51 +01:00
2026-01-08 12:02:45 +01:00
2025-09-04 18:08:39 +03:00
2026-03-24 09:49:17 +02:00
2025-05-03 12:06:36 +02:00
2026-04-02 09:15:17 +03:00
2024-06-24 13:09:47 +03:00
2024-12-02 17:51:17 +02:00
2024-12-02 17:51:17 +02:00
2026-01-08 21:41:40 +01:00
2026-04-02 09:15:17 +03:00
2026-04-02 09:15:17 +03:00
2026-01-31 14:08:54 +01:00
2026-01-05 20:34:44 +01:00
2026-03-24 09:49:17 +02:00
2026-02-07 22:12:32 +01:00
2026-01-08 12:02:45 +01:00
2025-07-28 21:29:29 +02:00
2026-02-06 17:46:51 +01:00
2026-02-06 17:46:51 +01:00
2026-03-17 18:57:42 +01:00
2026-02-07 22:12:32 +01:00
2026-03-24 09:49:17 +02:00
…
2026-02-06 17:46:51 +01:00
2026-02-06 17:46:51 +01:00
2026-04-02 09:15:17 +03:00
2025-09-29 18:25:09 +03:00
2024-06-27 10:26:09 +03:00
2025-08-04 12:05:53 +02:00
2024-12-02 17:51:17 +02:00
2026-04-02 09:15:17 +03:00
2025-09-19 12:31:14 +03:00
2026-04-02 09:15:17 +03:00
2026-04-02 09:15:17 +03:00
2025-04-29 11:18:00 +10:00
2025-03-14 12:08:56 +04:00
2024-07-03 12:45:30 +02:00
2026-04-17 09:31:38 +10:00
2026-03-24 09:49:17 +02:00
2025-01-09 09:41:38 +02:00
2024-12-02 17:51:17 +02:00
2026-02-03 14:53:15 +01:00
2026-03-24 09:49:17 +02:00
2025-07-31 20:55:47 +02:00
2026-04-02 09:15:17 +03:00
2026-03-24 09:49:17 +02:00
2025-07-31 20:55:47 +02:00
2026-04-01 10:49:05 +03:00
2026-02-07 22:12:32 +01:00
2026-02-07 22:12:32 +01:00
2025-04-29 11:18:00 +10:00
…
2026-01-05 20:34:44 +01:00
2026-04-02 09:15:17 +03:00
2025-03-14 12:08:56 +04:00
2024-12-02 17:51:17 +02:00
2026-04-02 09:15:17 +03:00
2026-04-02 09:15:17 +03:00
2026-04-02 09:15:17 +03:00
2026-04-02 09:15:17 +03:00
2026-04-02 09:15:17 +03:00
2026-01-05 20:34:44 +01:00
2026-04-02 09:15:17 +03:00
2025-06-18 07:50:39 +02:00
2026-04-02 09:15:17 +03:00
2025-04-29 11:18:00 +10:00
2026-03-24 09:49:17 +02:00
2025-09-04 18:08:39 +03:00
2024-06-24 13:09:47 +03:00
2025-03-14 12:08:56 +04:00
2024-12-02 17:51:17 +02:00
2024-12-02 11:35:34 +02:00
2026-03-24 09:49:17 +02:00
2025-03-14 12:08:56 +04:00
2026-01-08 12:02:45 +01:00
2025-11-28 12:56:27 +02:00
2024-06-27 10:26:09 +03:00
2026-03-24 09:49:17 +02:00
2026-03-24 09:49:17 +02:00
2024-05-10 20:02:18 +02:00
2026-04-02 09:15:17 +03:00
2026-04-02 09:15:17 +03:00
2024-10-03 13:24:43 +03:00
2024-09-09 13:50:38 +03:00
2026-02-07 22:12:32 +01:00
2026-04-02 09:15:17 +03:00
2026-04-01 10:49:05 +03:00
2025-07-31 20:55:47 +02:00