]> git.puffer.fish Git - mirror/frr.git/commitdiff
watchfrr: Extend ignore option to daemon being killed 14624/head
authorDonald Sharp <sharpd@nvidia.com>
Wed, 18 Oct 2023 18:30:03 +0000 (14:30 -0400)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Thu, 19 Oct 2023 15:49:16 +0000 (15:49 +0000)
When testing GR features, it is desired to kill bgp
(or really any daemon )and not immediately have bgp start up again.
Modify the code to not attempt to restart the daemon
by hand to let us developers work when the `watchfrr ignore XXX`
command is issued.

Testing:
watchfrr ignore bgpd
kill -9 bgpd
start bgp by `/usr/lib/frr/watchfrr.sh start bgpd` at some point in time
in the future

leaf-1# show watchfrr
watchfrr global phase: Idle
 Restart Command: "/usr/lib/frr/watchfrr.sh restart %s"
 Start Command: "/usr/lib/frr/watchfrr.sh start %s"
 Stop Command: "/usr/lib/frr/watchfrr.sh stop %s"
 Min Restart Interval: 60
 Max Restart Interval: 600
 Restart Timeout: 90
  zebra                Up
  bgpd                 Up/Ignoring Timeout
  staticd              Up
leaf-1#

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit c168244b9910bccafcb78bf1bb96a6fd569c6302)

watchfrr/watchfrr.c

index 89199da1af79a94ce77e60372f2b0475a0161f95..228b7ff363a69eb3d97ea365a1f22fb646da963b 100644 (file)
@@ -600,6 +600,9 @@ static void daemon_restarting_operational(struct event *thread)
 
 static void daemon_down(struct daemon *dmn, const char *why)
 {
+       if (dmn->ignore_timeout)
+               return;
+
        if (IS_UP(dmn) || (dmn->state == DAEMON_INIT))
                flog_err(EC_WATCHFRR_CONNECTION, "%s state -> down : %s",
                         dmn->name, why);