Control: tags -1  patch

Hi,

thanks for reporting.

On Fri, 30 Jan 2026 22:36:36 +0000 "S. Osipiuk"
<[email protected]> wrote:
> Package: runit-services
> Version: 0.10.0
> 
> 
> With the line:
>       [ -d "/etc/sv/$name" ] && continue
> the run script for dbus.dep-fixer attempts to check for the runit
> service definition of the given service, so that it can be
> (re)started using init.d, only if the runit definition does *not*
> exist, but a sysv init script in /etc/rc2.d does exist.
> 
> This check is flawed because /etc/sv does not contain the whole set
> of services known to runit. 

Right, I completely forgot to update this..

I think matching what run_sysv_scripts currently does
would address this

--- a/sv/dbus.dep-fixer/run
+++ b/sv/dbus.dep-fixer/run
@@ -16,7 +16,15 @@ for script in '/etc/rc2.d/S'* ; do
        [ ! -x "$script" ] && continue
        path=$(realpath "$script")
        name=${path##*/}
+       [ -f /etc/runit/override-sysv.d/"$name".block ] && continue 
+       [ -f /etc/runit/override-sysv.d/"$name".pkgblock ] && continue
+       if [ -f /etc/runit/override-sysv.d/"$name".sysv ]; then
+               "$script" start
+               continue
+       fi
+       [ -L "/etc/service/$name" ] && continue
        [ -d "/etc/sv/$name" ] && continue
+       [ -d "/usr/share/runit/sv.current/$name" ] && continue
        if grep -q "$name:.*dbus" /etc/init.d/.depend.start ; then
                "$script" start
        fi

Best,
Lorenzo


> The runit-services package itself places
> services in /usr/share/runit/sv/ and this directory must also be
> checked to ensure correct behavior.
> 
> As it is now, it's possible that a service is started by runit
> directly, but also started again as an init.d script triggered by
> dbus.dep-fixer because a check of /etc/sv will not find that service
> (it is instead defined in /usr/share/runit/sv/) This kind of
> double-start can cause issues and race conditions.
> 
> The simplest fix is to check both directories, though even this is
> imperfect.
> 
> For a related bug about checking the existence of runit services so
> that the equivalent init.d scripts are/aren't started, see #1022837.

Reply via email to