Package: runit-init
Version: 2.1.2-61
Severity: important
X-Debbugs-Cc: plore...@disroot.org

During testing of runit-2-1-2-61 the following problem was found:

* boot and enter into emergency shell in stage 1 (this requires
  a modified stage 1)

* send sigalrm to pid1 (this happened testing trying to synching
  services status with sv_trigger, which sends a sigarlm to pid1
  to force a rescan of runsvdir

* runit prints message: "WARNING, "signals only work in stage 2."
  several times instead of just one

* close emergency shell and continue with boot process: as soon as
  runit enters stage2, sigalrm is delivered to stage2 child (which
  is the shell because rusnvdir is still not running), stage 2 exits
  and runit enters in stage3, shutting down the system.

this happens because the signal counter is not reset after the signal is
ignored. Also affects sigpwr patch, it's one line fix around line 230 of
runit.c

       if (st != 1) {
         strerr_warn2(WARNING, "signals only work in stage 2.", 0);
-        sigc =sigi =0;
+        sigc =sigi =sigp =siga =0;
         continue;




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

Kernel: Linux 6.8.12-amd64 (SMP w/4 CPU threads; PREEMPT)
Kernel taint flags: TAINT_FIRMWARE_WORKAROUND, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_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)
LSM: AppArmor: enabled

Reply via email to