• Bug#1069592: runit: trigger_sv logic broken: enable and disable a servi

    From Lorenzo Puliti@21:1/5 to All on Sun Apr 21 10:30:01 2024
    Package: runit
    Version: 2.1.2-59
    Severity: normal
    X-Debbugs-Cc: plorenzo@disroot.org


    in order to temporary counter #1069075 I've created a local copy of
    elogind in /etc/sv/ ; then the elogind path is updated both in the run
    script and in the .meta/bin metafile so that

    ~# cat /etc/sv/elogind/.meta/bin
    /usr/libexec/elogind

    ~# cat /etc/sv/elogind/run | grep elogind
    exec /usr/libexec/elogind

    also (to see more messages from the trigger)
    touch /etc/runit/verbose

    then I call the trigger as it would be activated in almost any apt
    invocation and a not so "funny" thing happens

    ~# /lib/runit/trigger_sv setup
    Runit triggered upgrade: setup
    elogind enabled
    elogind disabled


    elogind service is enabled and disabled in the same loop.
    basically the shadowing logic works for "enable" action
    but not for "disable", resulting in bin metafiles being
    processed for both the copy in /etc/sv/ and /usr/share/runit
    with the latter that prevails due to be processed later.

    this need to be addressed





    -- System Information:
    Debian Release: trixie/sid
    APT prefers unstable
    APT policy: (500, 'unstable'), (1, 'experimental')
    Architecture: amd64 (x86_64)

    Kernel: Linux 6.1.0van (SMP w/4 CPU threads; PREEMPT)
    Kernel taint flags: TAINT_CPU_OUT_OF_SPEC, TAINT_FIRMWARE_WORKAROUND, TAINT_OOT_MODULE
    Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en
    Shell: /bin/sh linked to /usr/bin/dash
    Init: runit (via /run/runit.stopit)

    Versions of packages runit depends on:
    ii libc6 2.37-17
    ii runit-helper 2.16.2
    ii sysuser-helper 1.3.9+really1.4.3

    Versions of packages runit recommends:
    ii runit-init 2.1.2-59

    Versions of packages runit suggests:
    ii runit-services 0.7.1
    ii socklog 2.1.0+repack-5
    ii ucspi-unix 1.0-3
    pn zsh <none>

    -- Configuration Files:
    /etc/default/runit changed:
    VERBOSE=1
    DEBUG=1

    /etc/runit/runsvdir/single/sulogin/run [Errno 2] No such file or directory: '/etc/runit/runsvdir/single/sulogin/run'

    -- no debconf information

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lorenzo@21:1/5 to All on Sun Apr 21 10:40:01 2024
    to temporary workaround this in elogind service I suggest to create a
    local copy in /etc/sv/ with fixed paths, like above, and then fix also
    the path in the service's bin file under /usr

    ~# cat /usr/libexec/elogind > /usr/share/runit/sv/elogind/.meta/bin

    then

    ~# /lib/runit/trigger_sv setup

    it should work until one between this bug and #1069075 is fixed,
    whichever come first

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)