Playbook

Debugging Stale Locks

Stale locks turn a previous failure into a new outage.

Pattern

A lock is acquired but not released or expires too late after a failed path.

warningSymptoms

  • arrow_rightPipeline stuck
  • arrow_rightWorker never picks up new jobs
  • arrow_rightManual retry remains blocked

searchWhere to look

  • arrow_rightLock TTL
  • arrow_rightError cleanup
  • arrow_rightAtomic acquire/release
  • arrow_rightOwner token checks

buildCommon fixes

  • arrow_rightSet bounded TTLs
  • arrow_rightRelease locks in finally blocks
  • arrow_rightStore owner tokens before release

Practice challenges