[ovs-dev] [PATCH] rhel-systemd: Restart openvswitch service if a daemon crashes

Russell Bryant russell at ovn.org
Mon Feb 27 21:25:33 UTC 2017


On Tue, Feb 7, 2017 at 7:38 AM, Eelco Chaudron <echaudro at redhat.com> wrote:

> Currently if either ovsdb-server or ovs-vswitchd is crashing the
> daemon is not restarting leaving the system in faulty state.
> This patch will detect the daemon crash and will restart the
> openvswitch service.
>
> Here is a (bit to wide) table showing the behavior before and after
> the patch. Note that only the Crash behavior has changed:
>
> Before patch:
>                                |       Process Status        |
>  systemctl <> status            |
>                                | ovs-vswitchd | ovsdb-server |
> openvswitch  | ovs-vswitchd | ovsdb-server |
>                                +--------------+--------------
> +--------------+--------------+--------------+
> systemctl start openvswitch*   | started      | started
> |active,exited |active,running|active,running|
> Crash vswitchd                 | crashed      | stopped      |inactive,
> dead|failed        |inactive,dead |
> Crash ovsdb                    | stopped      | crashed      |inactive,
> dead|inactive,dead |failed        |
> systemctl restart openvswitch  | re-started   | re-started
>  |active,exited |active,running|active,running|
> systemctl restart ovs-vswitchd | re-started   | re-started
>  |active,exited |active,running|active,running|
> systemctl restart ovsdb-server | re-started   | re-started
>  |active,exited |active,running|active,running|
> systemctl stop openvswitch     | stopped      | stopped      |inactive,
> dead|inactive,dead |inactive,dead |
> systemctl stop ovs-vswitchd    | stopped      | stopped      |inactive,
> dead|inactive,dead |inactive,dead |
> systemctl stop ovsdb-server    | stopped      | stopped      |inactive,
> dead|inactive,dead |inactive,dead |
> systemctl start ovs-vswitchd*  | started      | started      |inactive,
> dead|active,running|active,running|
> systemctl start ovsdb-server*  | not started  | started      |inactive,
> dead|inactive, dead|active,running|
>
> With patch:
>                                |       Process Status        |
>  systemctk <> status            |
>                                | ovs-vswitchd | ovsdb-server |
> openvswitch  | ovs-vswitchd | ovsdb-server |
>                                +--------------+--------------
> +--------------+--------------+--------------+
> systemctl start openvswitch*   | started      | started
> |active,exited |active,running|active,running|
> Crash vswitchd                 | crash,started| re-started
>  |active,exited |active,running|active,running|
> Crash ovsdb                    | re-started   |
> crash,started|active,exited |active,running|active,running|
> systemctl restart openvswitch  | re-started   | re-started
>  |active,exited |active,running|active,running|
> systemctl restart ovs-vswitchd | re-started   | re-started
>  |active,exited |active,running|active,running|
> systemctl restart ovsdb-server | re-started   | re-started
>  |active,exited |active,running|active,running|
> systemctl stop openvswitch     | stopped      | stopped      |inactive,
> dead|inactive,dead |inactive,dead |
> systemctl stop ovs-vswitchd    | stopped      | stopped      |inactive,
> dead|inactive,dead |inactive,dead |
> systemctl stop ovsdb-server    | stopped      | stopped      |inactive,
> dead|inactive,dead |inactive,dead |
> systemctl start ovs-vswitchd*  | started      | started      |inactive,
> dead|active,running|active,running|
> systemctl start ovsdb-server*  | not started  | started      |inactive,
> dead|inactive, dead|active,running|
>
> * These commands where executed when no ovs related processes where
>   running. All other commands where executed when OVS was successfully
>   running.
>
> Signed-off-by: Eelco Chaudron <echaudro at redhat.com>
> ---
>  rhel/usr_lib_systemd_system_openvswitch.service  | 4 ++--
>  rhel/usr_lib_systemd_system_ovs-vswitchd.service | 1 +
>  rhel/usr_lib_systemd_system_ovsdb-server.service | 1 +
>  3 files changed, 4 insertions(+), 2 deletions(-)
>

Thanks!  I have applied this to master and branch-2.7.


More information about the dev mailing list