bugs.md #1: Race Condition bei Port-Konflikt-Prüfung im LAN-Schritt #13

Closed
opened 2026-09-17 21:09:58 +02:00 by kay · 0 comments
Owner

Quelle: bugs.md #1 (Tester-Durchgang Runde 1, 2026-09-17)
Confidence: hoch (Logikfehler direkt im Code nachvollzogen, nicht live reproduziert)

SetupViewModel.checkPortConflict(for:) schrieb das Ergebnis eines Task ohne Generation-Counter — bei schnellem Portwechsel konnte ein überholter, aber später fertiger Task das Ergebnis eines neueren Checks überschreiben ("last response wins" statt "last request wins").

Fehlerbild: Nutzer wählt Port A (Konflikt), wechselt schnell zu Port B (frei) — kommt As Ergebnis später zurück, zeigt die App fälschlich eine Warnung für den freien Port B, oder verschluckt umgekehrt eine echte Warnung.

Fix: Generation-Zähler portConflictRequestGeneration: [LanDhcpConfig.ID: Int] ergänzt — ein abgeschlossener Task schreibt sein Ergebnis nur, wenn seine Generation noch aktuell ist.

Verifikation: Build grün, 101 Unit-Tests grün. Noch nicht live gegenreproduziert.

**Quelle:** bugs.md #1 (Tester-Durchgang Runde 1, 2026-09-17) **Confidence:** hoch (Logikfehler direkt im Code nachvollzogen, nicht live reproduziert) `SetupViewModel.checkPortConflict(for:)` schrieb das Ergebnis eines `Task` ohne Generation-Counter — bei schnellem Portwechsel konnte ein überholter, aber später fertiger Task das Ergebnis eines neueren Checks überschreiben ("last response wins" statt "last request wins"). **Fehlerbild:** Nutzer wählt Port A (Konflikt), wechselt schnell zu Port B (frei) — kommt As Ergebnis später zurück, zeigt die App fälschlich eine Warnung für den freien Port B, oder verschluckt umgekehrt eine echte Warnung. **Fix:** Generation-Zähler `portConflictRequestGeneration: [LanDhcpConfig.ID: Int]` ergänzt — ein abgeschlossener Task schreibt sein Ergebnis nur, wenn seine Generation noch aktuell ist. **Verifikation:** Build grün, 101 Unit-Tests grün. Noch nicht live gegenreproduziert.
kay closed this issue 2026-09-17 21:09:58 +02:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kay/RouterOS#13