1
0
mirror of https://github.com/MariaDB/server.git synced 2026-01-06 05:22:24 +03:00
Files
mariadb/sql
Andrei Elkin a1bc50e18a MDEV-37453 Parallel slave worker crashes during Backup at retrying
In the BASE of this patch when a slave parallel worker proceeds from
the wait-for-prior-commit stage into retrying it may have its
backup-lock related sub-state, specifically `THD::backup_commit_lock`,
not reset, that is the pointer dangling.

That caused segfault at the pointer's dereferencing in the worker retrying.

The reason THD::backup_commit_lock is left dangling was unexpected
state of THD having non-NULL of `THD::backup_commit_lock` and NULL of `mdl_backup.ticket`.
This combination turns out possible when the slave worker is killed
for retry *and* few instruction later it does not succeed
to (re-)acquire the Backup MDL at exiting from
   `MYSQL_BIN_LOG::queue_for_group_commit()`.
While it did not succeed it also did not expose that fact with
timing out from `MDL_context::acquire_lock` and it did not have to,
as it before to start waiting it found itself killed.

The bug is fixed with amendment of `backup_commit_lock` reset condition
at the end of `ha_commit_trans()`. The amended reset remains careful to
affect only the stack allocated lock.

A test is added to confirm the fixes with reproducing all stages
described above. In the patch BASE it causes the segfault.
2025-10-17 15:46:53 +03:00
..
2024-08-12 09:32:30 +01:00
2024-11-29 12:37:46 +02:00
2024-01-17 13:35:05 +02:00
2024-06-24 13:09:47 +03:00
2024-11-29 12:37:46 +02:00
2024-11-29 12:37:46 +02:00
2024-10-29 14:20:03 +01:00
2025-01-29 11:17:38 +01:00
2025-04-15 01:49:48 +02:00
2023-12-17 11:20:43 +01:00
2025-02-27 04:02:33 +01:00
2024-11-29 12:37:46 +02:00
2024-11-29 12:37:46 +02:00
2024-11-29 12:37:46 +02:00
2024-07-16 15:54:22 +08:00
2024-07-16 15:54:22 +08:00
2025-01-29 11:17:38 +01:00
2025-01-29 11:17:38 +01:00
2025-04-26 10:41:52 +02:00
2025-01-09 10:15:53 +01:00
2025-01-09 10:15:53 +01:00
2024-11-29 12:37:46 +02:00
2024-07-16 15:54:22 +08:00
2024-11-29 12:37:46 +02:00
2023-11-08 15:57:05 +01:00
2024-06-26 09:16:54 +08:00
2024-06-24 13:09:47 +03:00
2025-04-02 04:43:24 +02:00
2024-06-24 13:09:47 +03:00
2024-11-29 12:37:46 +02:00
2024-06-24 13:09:47 +03:00
2024-11-29 12:37:46 +02:00
2024-11-29 12:37:46 +02:00
2024-05-30 14:27:07 +03:00
2024-11-29 12:37:46 +02:00
2024-10-29 14:20:03 +01:00
2024-06-24 13:09:47 +03:00
2024-01-17 13:35:05 +02:00
2024-06-24 13:09:47 +03:00
2024-11-29 12:37:46 +02:00
2024-07-16 15:54:22 +08:00
2023-12-17 11:20:43 +01:00
2023-12-17 11:20:43 +01:00
2024-11-29 12:37:46 +02:00
2024-06-24 13:09:47 +03:00
2024-11-29 12:37:46 +02:00
2024-11-29 12:37:46 +02:00
2025-01-20 09:57:37 +02:00
2023-08-01 15:08:52 +02:00
2024-11-29 12:37:46 +02:00
2024-05-08 20:06:00 +02:00
2025-01-29 11:17:38 +01:00
2024-11-29 12:37:46 +02:00
2024-11-29 12:37:46 +02:00
2024-12-04 18:22:31 +03:00
2023-05-02 10:09:27 +02:00
2024-11-23 08:14:22 -07:00
2025-01-20 09:57:37 +02:00
2023-11-08 15:57:05 +01:00
2024-11-29 12:37:46 +02:00
2024-11-29 12:37:46 +02:00
2024-06-24 13:09:47 +03:00
2024-12-05 09:20:36 +01:00
2024-06-24 13:09:47 +03:00
2025-01-29 11:17:38 +01:00
2025-01-20 09:57:37 +02:00
2024-11-29 12:37:46 +02:00
2024-11-29 12:37:46 +02:00
2024-11-29 12:37:46 +02:00
2025-04-26 10:41:52 +02:00
2024-01-17 13:35:05 +02:00
2025-04-26 10:41:52 +02:00
2024-11-23 08:14:22 -07:00
2025-08-22 11:43:38 +03:00
2024-11-29 12:37:46 +02:00
2024-01-11 12:59:22 +11:00
2024-01-10 18:01:46 +11:00
2024-06-24 13:09:47 +03:00
2024-11-29 12:37:46 +02:00
2024-08-03 09:04:24 +02:00
2025-01-09 10:15:53 +01:00
2024-08-20 09:11:34 +02:00
2024-07-16 15:54:22 +08:00
2024-07-16 15:54:22 +08:00
2024-02-12 11:38:13 +02:00
2024-12-17 11:06:09 +11:00
2024-11-29 12:37:46 +02:00
2024-06-24 13:09:47 +03:00
2025-04-26 10:41:52 +02:00
2023-05-23 12:25:39 +03:00
2024-11-29 12:37:46 +02:00
2025-01-20 09:57:37 +02:00
2024-06-05 14:06:16 +10:00
2024-04-15 18:54:30 +02:00
2025-01-20 09:57:37 +02:00
2024-07-03 12:45:30 +02:00
2025-01-20 09:57:37 +02:00
2023-08-04 07:52:54 +02:00
2025-01-20 09:57:37 +02:00
2023-12-17 11:20:43 +01:00
2023-12-17 11:20:43 +01:00
2025-04-21 10:43:17 +02:00
2023-12-02 01:02:50 +01:00
2024-12-17 11:06:09 +11:00
2024-11-29 12:37:46 +02:00
2024-03-27 15:00:56 +02:00
2025-04-15 01:49:48 +02:00
2024-10-29 14:20:03 +01:00
2024-06-13 19:58:11 +03:00
2025-02-02 12:55:16 +01:00
2025-01-20 09:57:37 +02:00
2025-03-26 17:09:57 +02:00
2023-09-25 13:06:57 +10:00
2024-11-29 12:37:46 +02:00
2024-01-17 13:35:05 +02:00
2023-08-01 15:08:52 +02:00
2024-11-23 08:14:22 -07:00
2024-11-23 08:14:23 -07:00
2025-04-21 10:43:17 +02:00
2025-01-07 16:46:43 +01:00
2025-03-26 17:09:57 +02:00
2024-11-29 12:37:46 +02:00
2024-01-10 18:01:46 +11:00
2024-11-05 21:32:48 +01:00
2024-06-24 13:09:47 +03:00
2024-02-13 20:42:59 +02:00
2024-01-02 17:37:58 +02:00
2025-01-20 09:57:37 +02:00
2025-04-02 04:43:24 +02:00
2025-01-29 11:17:38 +01:00
2024-10-29 14:20:03 +01:00
2025-02-02 12:55:16 +01:00
2024-11-29 12:37:46 +02:00