Document released stop fix and pending Gemini acceptance

This commit is contained in:
admin committed 2026-09-15 23:31:56 +02:00
1 parent 3730ab4676
commit 04283a607c
4 files changed
+98

No files matched your search

+24
View File
@@ -1,5 +1,11 @@
# Dokumentation app-backup v2
**Aktualisiert am 15. September 2026:** Das Code-Paket `3730ab4676a5` enthält
den lokal geprüften Schutz laufender Writer-Stopps gegen konkurrierende
Healthcheck-Aufträge. Code und Paket sind bereitgestellt; Installation und neue
Abnahme auf Gemini sind noch nicht bestätigt. Aktuelle Deployment-Befehle und
Erfolgskriterien stehen in der [Update-Anleitung](UPDATE_ANLEITUNG.md#deployment-des-bereitgestellten-pakets-3730ab4676a5).
Stand des Reviews: 10. September 2026. Untersucht wurde der Gitea-Stand `099688e` einschließlich Backup, Restore, Installer, Konfiguration, systemd und bisheriger README. Die Erweiterung wird als zusammengehöriges Paket installiert; einzelne Skripte dürfen nicht ohne die gemeinsamen Bibliotheken aktualisiert werden.
## Ergebnis der Codeanalyse
@@ -297,6 +303,15 @@ werden nicht verändert. Die Laufzeitergänzung muss nach `daemon-reload` als le
Drop-in gemeldet werden; andernfalls bricht der Lauf ab, damit spätere
Condition-Resets die Sperre nicht unbemerkt überschreiben.
Zusätzlich schützt `systemctl stop UNIT --job-mode=replace-irreversibly` den
laufenden Stop-Auftrag vor konkurrierenden Reloads und Starts. Die Startbedingung
allein verhindert dessen Verdrängung nicht; dieser Konflikt trat am 15.09.2026
zwischen Apache und dem ai-rem-Healthcheck auf. Der Jobmodus gilt für den
laufenden Auftrag und lässt den späteren Wiederanlauf nach Freigabe der
Startsperren zu. Echte Stopfehler und explizite Job-Abbrüche führen weiterhin zum
Backupfehler mit Wiederanlaufbehandlung. Verlauf und Regressionstest sind in der
[Update-Anleitung](UPDATE_ANLEITUNG.md#nachtrag-vom-15092026-healthcheck-verdrängt-apache-stop) dokumentiert.
Nach dem Anhalten aller Writer, vor und nach den Dumps/Dateikopien und unmittelbar
vor der Freigabe prüft das Backup Dienstzustand, eigene Sperrdateien und die
systemd-Zeitpunkte `ActiveEnterTimestampMonotonic` und `InactiveExitTimestampMonotonic`.
@@ -611,6 +626,15 @@ separate Abnahmen. Aktivierung und Prüfung auf Gemini erfolgen nach Installatio
### Entwicklungstests
Aktuelle Verifikation vom 15.09.2026 für den Code-Stand `3730ab4676a5`:
119 Fälle im Standardlauf, davon 111 erfolgreich und acht planmäßig übersprungen
(906,3 Sekunden). Die drei Benutzer-systemd-Fälle bestanden separat: alter
Reload-Konflikt reproduziert, geschützter Stop gegen Reload und Start erfolgreich,
Dienst anschließend inaktiv. Fünf optionale Docker-Integrationstests wurden in
diesem abschließenden Lauf nicht erneut ausgeführt. ShellCheck und
Shell-Syntaxprüfung bestanden. Die folgenden älteren Prüfnachweise bleiben
historische Nachweise; die neue Serverabnahme steht aus.
Reproduzierbar mit `tests/Dockerfile` und `tests/run.sh`. Der Container bekommt das Repository nur lesbar und benötigt während der Tests kein Netzwerk. Die MariaDB läuft ohne TCP-Port in einem temporären Verzeichnis. systemd/occ werden simuliert; alle eigentlichen Archive, Dateikopien, Dumps/Imports und Crypt-Operationen sind real.
Verifikation am 12.09.2026: **Standardlauf erfolgreich** (81 Fälle, davon 80 erfolgreich und ein separater Docker-Test planmäßig übersprungen; 704,8 Sekunden). Zusätzlich bestanden alle **19 gezielten Restore-Tests** mit echten DB-Containern und der Paketupdate-/Rollback-Test mit aktiviertem Restore-Timer. Die gezielten Tests prüfen insbesondere Platzgrenzen, ungültiges SQL, SIGTERM, SIGKILL, defekte Statusdateien, einen unerreichbaren Docker-Daemon und anschließende vollständige Bereinigung. Shell-Syntax, ShellCheck und systemd-Unit-Prüfung ohne Befund. Basis-Testumgebung: Debian 13.6, MariaDB 11.8.6, rclone 1.60.1-DEV und ShellCheck 0.10.0. Test-Mails werden nur lokal erfasst. Die tatsächliche Rocky-/OneDrive-/MTA-Abnahme des neuen Monatslaufs auf Gemini steht nach Installation noch aus.