Re: Boot time improvement with systemd and nfs-utils

Chuck Lever
2021-01-04T12:28:26Z

Hello, thanks for your report.

The dependency you are removing addresses a bug -- if the network is not configured when rpc.statd is started, the rpc.statd process continues to use incorrect local address information even after the network is up.

> On Jan 4, 2021, at 6:32 AM, Hackintosh Five <hackintoshfive@gmail.com> wrote:
>
> rpc-statd-notify is causing a 10 second hang on my system during boot
> due to an unwanted dependency on network-online.target. This
> dependency isn't needed anyway, because rpc-statd-notify (sm-notify)
> will wait for the network to come online if it isn't already (up to 15
> minutes, so no risk of timeout that would be avoided by systemd)
> =============================================
> From c90bd7e701c2558606907f08bf27ae9be3f8e0bf Mon Sep 17 00:00:00 2001
> From: Hackintosh 5 <git@hack5.dev>
> Date: Sat, 2 Jan 2021 14:28:30 +0000
> Subject: [PATCH] systemd: network-online.target is not needed for
> rpc-statd-notify.service
>
> Commit 09e5c6c2 changed the After line for rpc-statd-notify to change
> network.target to network-online.target, which is incorrect, because
> sm-notify has a default timeout of 15 minutes, which is longer than
> the timeout for network-online.target. In other words, the dependency
> on network-online.target is useless and delays system boot by ~10
> seconds.
> ---
> systemd/rpc-statd-notify.service | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/systemd/rpc-statd-notify.service
> b/systemd/rpc-statd-notify.service
> index aad4c0d2..8a40e862 100644
> --- a/systemd/rpc-statd-notify.service
> +++ b/systemd/rpc-statd-notify.service
> @@ -1,8 +1,8 @@
> [Unit]
> Description=Notify NFS peers of a restart
> DefaultDependencies=no
> -Wants=network-online.target
> -After=local-fs.target network-online.target nss-lookup.target
> +Wants=network.target
> +After=local-fs.target network.target nss-lookup.target
>
> # if we run an nfs server, it needs to be running before we
> # tell clients that it has restarted.
> --
> 2.29.2

--
Chuck Lever