Backend-e2e: parallele Suites flaky, e2e läuft nicht in der CI #32

Open
opened 2026-10-16 05:58:38 +00:00 by Nick.Rosenloecher · 1 comment
Owner

Ziel

Die Backend-e2e-Tests sind verlässlich grün und laufen automatisch.

Offen

  • Parallele Suites scheitern sporadisch mit „expired claim used up their attempts“ (vermutlich gemeinsamer DB-Zustand der Outbox-/Claim-Tests); mit --runInBand grün. Ursache finden und Suites isolieren (eigenes Schema je Worker oder gezielt serialisieren)
  • Die e2e-Tests laufen heute nur lokal: Das Backend-Dockerfile führt nur Lint, Typecheck und Unit-Tests aus („die e2e-Tests brauchen eine Datenbank“). Einen CI-Job mit Postgres-Service ergänzen (Runner docker-builder im Cluster)

Grundlage

Session-Status vs-code-ff, ApiCore-Backend/Dockerfile, .gitea/workflows/backend-image.yml.

Status

Code: Ursache behoben (main) · Geprüft: parallele e2e 3x grün (978 Tests) · Gemergt: ja · Produktiv: –
Stand: 2026-10-16 (Quelle: git origin/main af6d142b, CI grün, Session vs-code-ff)

## Ziel Die Backend-e2e-Tests sind verlässlich grün und laufen automatisch. ## Offen - [x] Parallele Suites scheitern sporadisch mit „expired claim used up their attempts“ (vermutlich gemeinsamer DB-Zustand der Outbox-/Claim-Tests); mit `--runInBand` grün. Ursache finden und Suites isolieren (eigenes Schema je Worker oder gezielt serialisieren) - [ ] Die e2e-Tests laufen heute nur lokal: Das Backend-Dockerfile führt nur Lint, Typecheck und Unit-Tests aus („die e2e-Tests brauchen eine Datenbank“). Einen CI-Job mit Postgres-Service ergänzen (Runner `docker-builder` im Cluster) ## Grundlage Session-Status vs-code-ff, `ApiCore-Backend/Dockerfile`, `.gitea/workflows/backend-image.yml`. ## Status Code: Ursache behoben (main) · Geprüft: parallele e2e 3x grün (978 Tests) · Gemergt: ja · Produktiv: – Stand: 2026-10-16 (Quelle: git origin/main af6d142b, CI grün, Session vs-code-ff)
Nick.Rosenloecher added the art/bugprio/mittelstatus/offen labels 2026-10-16 05:58:38 +00:00
Author
Owner

Ursache war nicht die Outbox, sondern NotificationsService: Empfänger lesen und Benachrichtigungen schreiben liefen getrennt; ein paralleler Test löschte seinen Benutzer dazwischen → P2003 (Notification_userId_fkey) → Handler-Retry verzögert. Fix in 1a57de85: eine Transaktion mit FOR KEY SHARE auf die Empfängerzeilen; zwei e2e-Prüfungen gegen geteilten DB-Zustand entschärft. Parallele e2e (maxWorkers 4) 3x hintereinander grün, 97 Suites / 978 Tests. Offen bleibt der zweite Punkt: e2e als CI-Job mit Postgres-Service.

Ursache war nicht die Outbox, sondern NotificationsService: Empfänger lesen und Benachrichtigungen schreiben liefen getrennt; ein paralleler Test löschte seinen Benutzer dazwischen → P2003 (Notification_userId_fkey) → Handler-Retry verzögert. Fix in 1a57de85: eine Transaktion mit FOR KEY SHARE auf die Empfängerzeilen; zwei e2e-Prüfungen gegen geteilten DB-Zustand entschärft. Parallele e2e (maxWorkers 4) 3x hintereinander grün, 97 Suites / 978 Tests. Offen bleibt der zweite Punkt: e2e als CI-Job mit Postgres-Service.
Sign in to join this conversation.