Absturzbericht: liveconfig.service beendet sich beim Shutdown mit SIGABRT (uncaught signal 6)

  • Kleiner Crashbericht für Liveconfig v2:



    Absturzbericht: liveconfig.service beendet sich beim Shutdown mit SIGABRT (Signal 6)

    ======================================================================================


    Umgebung: Debian GNU/Linux 13 (trixie), LiveConfig 2.19.1-release.

    Auslöser: regulärer System-Reboot (systemctl reboot), kein Crash im Normalbetrieb.


    Zusammenfassung

    ---------------

    Beim Reboot am 2026-08-14 ca. 22:16-22:17 Uhr hat sich liveconfig.service nicht

    sauber beendet, sondern nach ca. 60s mit Backtrace und SIGABRT terminiert. Der

    Versuch, den Crash-Report an update.liveconfig.com zu senden, schlug fehl, weil

    das Netzwerk beim Shutdown bereits abgebaut war.


    Ablauf (aus /var/log/liveconfig/liveconfig.log, PID 11366=Haupt-, 11367=Serverkind)

    ------------------------------------------------------------------------------------

    1. 22:15:11 - Serverkind (11367) verliert MySQL-Verbindung, weil MariaDB im

    selben Reboot ebenfalls gestoppt wird. Reconnect-Loop mit Backoff startet:

    1s -> 2s -> 4s -> 8s -> 16s -> 32s.

    2. 22:16:14 - systemd sendet SIGTERM an den Hauptprozess, um den Dienst zu

    stoppen. Das Serverkind steckt gerade im 32s-Sleep des Reconnect-Loops und

    reagiert nicht.

    3. 22:17:14 (60s später) - systemd eskaliert, sendet SIGTERM erneut, diesmal

    direkt von PID 1. Das Serverkind terminiert daraufhin mit nicht abgefangenem

    Signal 6 (Aborted).

    4. Der Hauptprozess loggt einen Backtrace und versucht erfolglos, den Crash

    automatisch zu melden (HTTPClient: connection error, state=7), da das

    Netzwerk zu dem Zeitpunkt schon gestoppt war. 22:17:18 - "LiveConfig

    terminated."


    Ursache

    -------

    Der MySQL-Reconnect-Loop im Serverkind reagiert offenbar nicht auf SIGTERM,

    während er in seinem Backoff-Sleep blockiert. Erst nach Ablauf von

    TimeoutStopSec (65s) und einem zweiten SIGTERM direkt von PID 1 terminiert der

    Prozess - dann aber per uncaught SIGABRT statt sauber.


    Ausgelöst wurde es dadurch, dass MariaDB im selben Shutdown praktisch

    gleichzeitig mit LiveConfig gestoppt wurde: liveconfig.service hat keine

    explizite Abhängigkeit zu mariadb.service, daher lief der Reconnect-Loop noch,

    als das Stop-Signal kam.


    Häufigkeit: einmaliges Auftreten. Weder das vorherige Log (bis 2026-08-01) noch

    die Journal-Historie (zurück bis 2026-07-05) zeigen einen zweiten Fall - alle

    anderen Stops liefen sauber in unter 1s durch.


    Relevanter Ausschnitt aus liveconfig.service (vor dem Fix)

    -------------------------------------------------------------

    Code
    [Unit]
    After=network-online.target
    [Service]
    Type=forking
    ExecStop=/usr/sbin/liveconfig -k stop
    TimeoutStopSec=65
    KillMode=process


    -> Keine Abhängigkeit zu mariadb.service vorhanden.


    Log-Auszug (Rohdaten, Zeitstempel/PID-Präfix "[2026/08/14 HH:MM:SS.ffffff] [PID|TID]" gekürzt)

    --------------------------------------------------------------------------------------------------

    Getestete, funktionierende Lösung

    ------------------------------------

    systemd-Override für liveconfig.service, ergänzt "After=mariadb.service":


    nano /etc/systemd/system/liveconfig.service.d/override.conf

    Code
    [Unit]
    After=mariadb.service


    systemd stoppt Dienste in umgekehrter Start-Reihenfolge, LiveConfig wird damit

    beim Shutdown zuverlässig VOR MariaDB gestoppt - der Reconnect-Loop läuft dann

    gar nicht erst in die Race Condition. Verifiziert per:

    systemctl show liveconfig.service -p After

    -> ...mariadb.service... (enthalten)


    Vorschlag an den Support: "After=mariadb.service" (bzw. die jeweils passende

    DB-Unit, z.B. mysql.service) direkt ins offizielle liveconfig.service-Template

    aufnehmen, damit alle Installationen mit lokaler DB automatisch profitieren -

    zusätzlich wäre wünschenswert, wenn der Reconnect-Loop selbst auf SIGTERM auch

    während eines laufenden Backoff-Sleeps reagieren würde.


    Für andere Admins: passendes Fix-Script als separater Anhang

    (fix-liveconfig-shutdown-order.sh, hier als .txt hochgeladen - vor Ausführung

    zu .sh umbenennen). Erkennt den DB-Service automatisch, legt den Override an,

    kein Neustart von LiveConfig nötig.


    Code
    mv fix-liveconfig-shutdown-order.sh.txt fix-liveconfig-shutdown-order.sh
    chmod +x fix-liveconfig-shutdown-order.sh
    sudo ./fix-liveconfig-shutdown-order.sh

    Das Script erkennt automatisch euren laufenden Datenbank-Service (mariadb.service/mysql.service/mysqld.service), legt einen systemd-Override für liveconfig.service an und lädt systemd neu. Kein Neustart von LiveConfig nötig, keine Downtime, gefahrlos mehrfach ausführbar.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!