[Openvpn-devel,v9] multi: Fix wrong sigma value in multi_push_restart_schedule_exit

Message ID 20251215150500.18898-1-gert@greenie.muc.de
State New
Headers show
Series [Openvpn-devel,v9] multi: Fix wrong sigma value in multi_push_restart_schedule_exit | expand

Commit Message

Gert Doering Dec. 15, 2025, 3:04 p.m. UTC
From: Frank Lichtenheld <frank@lichtenheld.com>

Sigma was computed based on the absolute time and
not the delta.

Note that this probably makes no actual difference in
practice. The sigma value is irrelevant on first call
and multi_push_restart_schedule_exit should not be
called multiple times since it is only called
if deferred_shutdown_signal.signal_received is not set,
yet.

Change-Id: I62b8263f18c4e2e7f5ecacb4616737f5ba836303
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1311
---

This change was reviewed on Gerrit and approved by at least one
developer. I request to merge it to master.

Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1311
This mail reflects revision 9 of this Change.

Acked-by according to Gerrit (reflected above):
Gert Doering <gert@greenie.muc.de>

Comments

Gert Doering Dec. 15, 2025, 3:35 p.m. UTC | #1
Indeed, the original code looks wrong here, according to the new 
documentation just added :-) - interesting functions we have there.

Stared-at-code, not tested beyond "BB says it's all green".

Your patch has been applied to the master branch.

commit 310c6b9e789a102b71ad9d4ba56bc11d1c8a0a73
Author: Frank Lichtenheld
Date:   Mon Dec 15 16:04:54 2025 +0100

     multi: Fix wrong sigma value in multi_push_restart_schedule_exit

     Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
     Acked-by: Gert Doering <gert@greenie.muc.de>
     Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1311
     Message-Id: <20251215150500.18898-1-gert@greenie.muc.de>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg35075.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering

Patch

diff --git a/src/openvpn/multi.c b/src/openvpn/multi.c
index d2d9ba8e..d9cb3a9 100644
--- a/src/openvpn/multi.c
+++ b/src/openvpn/multi.c
@@ -3820,7 +3820,6 @@ 
 {
     struct hash_iterator hi;
     struct hash_element *he;
-    struct timeval tv;
 
     /* tell all clients to restart */
     hash_iterator_init(m->iter, &hi);
@@ -3838,15 +3837,14 @@ 
 
     /* reschedule signal */
     ASSERT(!openvpn_gettimeofday(&m->deferred_shutdown_signal.wakeup, NULL));
-    tv.tv_sec = 2;
-    tv.tv_usec = 0;
+    struct timeval tv = { .tv_sec = 2, .tv_usec = 0 };
     tv_add(&m->deferred_shutdown_signal.wakeup, &tv);
 
     m->deferred_shutdown_signal.signal_received = m->top.sig->signal_received;
 
     schedule_add_entry(m->schedule, (struct schedule_entry *)&m->deferred_shutdown_signal,
                        &m->deferred_shutdown_signal.wakeup,
-                       compute_wakeup_sigma(&m->deferred_shutdown_signal.wakeup));
+                       compute_wakeup_sigma(&tv));
 
     signal_reset(m->top.sig, 0);
 }