SoloMedium8m

The Frozen Checkout

PagerDuty — checkout-api frozen (504s)

Impact: ALL checkouts failing 23+ minutes. DB CPU 2% — not load. Two transactions waiting on each other — classic deadlock.

The trap: Txn A locks products then sessions. Txn B locks sessions then products. Circular wait → frozen checkout.

Your task

Fix `process_checkout()` in `checkout_service.py`: consistent lock order (checkout_sessions → products), 5s timeout, one retry.

Book: ACID prevents races · Prod: inconsistent lock order deadlocks under concurrency.

Skills you'll prove

pythonconcurrencydeadlockdatabasetransactionsbook-vs-prod

Browse freely — sign in when you're ready to open a ticket and prove your skills.