[DTrace-devel] [PATCH] spec, dtprobed: restart on install/update if already running

Kris Van Hees kris.van.hees at oracle.com
Wed Jun 7 17:51:37 UTC 2023


On Wed, Jun 07, 2023 at 06:14:26PM +0100, Nick Alcock via DTrace-devel wrote:
> If we don't restart dtprobed when a yum update happens, we're going to
> keep running an older version, with all its bugs and/or limitations.  I
> thought %systemd_postun handled this, but in fact it doesn't: you need
> to use the barely-documented %systemd_postun_with_restart instead.  Of
> course, that doesn't really work: being in %postun, the *package being
> uninstalled* already needs to have it.  So do a try-restart in %post
> instead, so that the new version gets it. If we do a try-restart before
> the enable/start, it should work fine even on first install, when it's
> not already running.
> 
> While we're at it, fix %systemd_postun to not mention .targets,
> only .services: it doesn't make sense to stop targets :)
> 
> Signed-off-by: Nick Alcock <nick.alcock at oracle.com>

Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>

> ---
>  dtrace.spec | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/dtrace.spec b/dtrace.spec
> index d525386f15e8..92d10e4d876b 100644
> --- a/dtrace.spec
> +++ b/dtrace.spec
> @@ -198,6 +198,10 @@ rm -rf $RPM_BUILD_DIR/%{name}-%{version}
>  /sbin/ldconfig
>  %udev_rules_update
>  %systemd_post dtprobed.service dtrace-usdt.target
> +# Do this rather than systemd_postun_with_restart because this depends
> +# only on the package being installed, rather than relying on the state of
> +# the old package.
> +systemctl try-restart dtprobed || :
>  systemctl enable dtprobed.service dtrace-usdt.target
>  systemctl start dtprobed.service
>  
> @@ -216,7 +220,7 @@ fi
>  %postun
>  /sbin/ldconfig
>  %udev_rules_update
> -%systemd_postun dtprobed.service dtrace-usdt.target
> +%systemd_postun dtprobed.service
>  
>  %files
>  %defattr(-,root,root,-)
> 
> base-commit: 54eaa8936464e11d290660a4f6d49074086d7124
> -- 
> 2.40.1.269.g9f1f0b2736
> 
> 
> _______________________________________________
> DTrace-devel mailing list
> DTrace-devel at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/dtrace-devel



More information about the DTrace-devel mailing list