Michał Kępień
cb9928aaeb
Gracefully handle resending a node to prune_tree()
...
Commit 801e888d03 made the prune_tree()
function use send_to_prune_tree() for triggering pruning of deleted leaf
nodes' parents. This enabled the following sequence of events to
happen:
1. Node A, which is a leaf node, is passed to send_to_prune_tree() and
its pruning is queued.
2. Node B is added to the RBTDB as a child of node A before the latter
gets pruned.
3. Node B, which is now a leaf node itself (and is likely to belong to
a different node bucket than node A), is passed to
send_to_prune_tree() and its pruning gets queued.
4. Node B gets pruned. Its parent, node A, now becomes a leaf again
and therefore the prune_tree() call that handled node B calls
send_to_prune_tree() for node A.
5. Since node A was already queued for pruning in step 1 (but not yet
pruned), the INSIST(!ISC_LINK_LINKED(node, prunelink)); assertion
fails for node A in send_to_prune_tree().
The above sequence of events is not a sign of pathological behavior.
Replace the assertion check with a conditional early return from
send_to_prune_tree().
(cherry picked from commit f6289ad931 )
2024-02-29 18:06:12 +01:00
..
2024-02-01 21:51:07 +01:00
2022-11-29 10:30:34 +01:00
2023-07-26 15:20:53 +02:00
2024-02-02 11:19:57 +01:00
2022-03-25 09:33:51 +01:00
2023-10-17 17:56:31 +02:00
2022-11-29 10:30:34 +01:00
2022-11-29 10:30:34 +01:00
2022-12-08 11:20:35 +11:00
2022-01-11 12:22:09 +01:00
2024-01-05 11:52:05 +01:00
2022-12-08 11:20:35 +11:00
2022-01-27 16:08:57 -08:00
2022-11-29 10:30:34 +01:00
2022-12-08 11:20:35 +11:00
2022-01-11 12:22:09 +01:00
2022-03-25 09:37:18 +01:00
2022-11-29 10:30:34 +01:00
2022-11-29 10:30:34 +01:00
2022-03-25 09:37:18 +01:00
2022-01-11 12:22:09 +01:00
2023-02-01 12:07:11 +01:00
2022-11-29 10:30:34 +01:00
2022-08-31 15:49:25 -07:00
2022-01-11 12:22:09 +01:00
2022-03-25 09:33:51 +01:00
2024-02-01 21:51:07 +01:00
2022-05-16 10:35:33 +02:00
2022-03-02 09:34:29 +00:00
2022-11-29 10:30:34 +01:00
2022-01-11 12:22:09 +01:00
2022-01-11 12:22:09 +01:00
2022-01-11 12:22:09 +01:00
2022-01-11 12:22:09 +01:00
2022-12-08 11:20:35 +11:00
2022-11-29 10:30:34 +01:00
2022-01-11 12:22:09 +01:00
2023-01-11 13:42:00 +00:00
2022-01-11 12:22:09 +01:00
2022-01-11 12:22:09 +01:00
2022-11-29 10:30:34 +01:00
2022-01-11 12:22:09 +01:00
2022-03-18 17:21:57 +00:00
2022-03-25 09:37:18 +01:00
2023-02-18 10:27:11 +11:00
2022-01-11 12:22:09 +01:00
2022-01-11 12:22:09 +01:00
2022-12-08 11:20:35 +11:00
2022-03-25 09:37:18 +01:00
2022-11-29 10:30:34 +01:00
2022-01-11 12:22:09 +01:00
2023-01-27 16:09:06 +01:00
2023-04-03 17:48:31 +02:00
2022-01-11 12:22:09 +01:00
2022-01-11 12:22:09 +01:00
2022-01-11 12:22:09 +01:00
2022-03-25 09:37:18 +01:00
2022-01-11 12:22:09 +01:00
2024-01-05 12:40:50 +01:00
2023-10-17 17:56:31 +02:00
2022-12-08 11:20:35 +11:00
2024-01-31 16:04:59 +01:00
2024-01-05 11:52:05 +01:00
2023-09-18 16:40:54 +10:00
2023-10-17 17:56:31 +02:00
2022-12-08 11:20:35 +11:00
2023-01-19 11:28:10 +01:00
2022-11-29 10:30:34 +01:00
2022-11-29 10:30:34 +01:00
2022-11-29 10:30:34 +01:00
2022-11-29 10:30:34 +01:00
2023-10-28 09:01:51 +11:00
2022-11-29 10:30:34 +01:00
2022-11-29 10:30:34 +01:00
2022-01-11 12:22:09 +01:00
2022-03-28 23:28:05 +02:00
2022-03-28 23:28:05 +02:00
2022-11-29 10:30:34 +01:00
2022-01-11 12:22:09 +01:00
2023-10-17 17:56:31 +02:00
2024-01-05 12:40:50 +01:00
2024-02-29 18:06:12 +01:00
2022-01-11 12:22:09 +01:00
2022-11-29 10:30:34 +01:00
2023-09-22 17:10:25 +02:00
2022-01-11 12:22:09 +01:00
2022-11-29 10:30:34 +01:00
2022-03-25 09:37:18 +01:00
2022-01-11 12:22:09 +01:00
2022-11-29 10:30:34 +01:00
2023-01-19 11:28:10 +01:00
2024-02-01 21:51:07 +01:00
2023-10-17 17:56:31 +02:00
2023-11-03 03:44:43 +11:00
2024-01-05 11:52:05 +01:00
2022-12-08 11:20:35 +11:00
2022-11-29 10:30:34 +01:00
2022-12-08 11:20:35 +11:00
2022-12-08 11:20:35 +11:00
2022-03-25 09:37:18 +01:00
2022-01-11 12:22:09 +01:00
2022-11-29 10:30:34 +01:00
2022-11-29 10:30:34 +01:00
2022-01-11 12:22:09 +01:00
2022-01-11 12:22:09 +01:00
2022-01-11 12:22:09 +01:00
2022-11-29 10:30:34 +01:00
2022-03-25 09:33:51 +01:00
2022-01-11 12:22:09 +01:00
2024-01-05 11:28:25 +01:00
2022-01-11 12:22:09 +01:00
2023-12-19 12:55:03 +11:00
2024-02-01 21:51:07 +01:00
2022-01-11 12:22:09 +01:00
2023-04-03 17:48:31 +02:00
2023-07-24 11:02:37 +02:00
2022-01-11 12:22:09 +01:00
2023-12-19 12:55:03 +11:00
2022-11-29 10:30:34 +01:00
2022-12-08 11:20:35 +11:00
2022-11-29 10:30:34 +01:00