From 407d753a5a70bc12b2e1426ef2833c1abe945de9 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Fri, 11 Jul 2025 15:47:05 +0200 Subject: [PATCH] l3cfg: don't reset the ACD probe timestamp during timer events acd_data->probing_timestamp_msec indicates when the probing started. It is used in different places to calculate the timeout for certain operations. In particular, it is used to detect that the probe creation took too long when handling the ACD_STATE_CHANGE_MODE_TIMEOUT event. If we reset this timestamp at every timer event, we'll never hit the probe creation timeout. Therefore, the l3cfg will keep trying forever to create the probe. See: https://lists.freedesktop.org/archives/networkmanager/2025-July/000418.html Fix this by not updating the timestamp during a timeout event. Fixes: a09f9cc61629 ('l3cfg: ensure the probing timeout is initialized on probe start') --- src/core/nm-l3cfg.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/core/nm-l3cfg.c b/src/core/nm-l3cfg.c index 8a69a28483..1797cd0f93 100644 --- a/src/core/nm-l3cfg.c +++ b/src/core/nm-l3cfg.c @@ -2751,9 +2751,8 @@ handle_init: goto handle_start_defending; } - acd_data->probing_timestamp_msec = (*p_now_msec); - acd_data->probing_timeout_msec = acd_timeout_msec; - log_reason = "retry probing on timeout"; + acd_data->probing_timeout_msec = acd_timeout_msec; + log_reason = "retry probing on timeout"; goto handle_start_probing; }