# The U2 bug-hunt panel was not ceremony _2026-09-22 ยท booth_ **The U2 bug-hunt panel landed and it was not ceremony โ€” `v0.2.2`.** Nine adopted findings across four arms; eight were real against live code and one was already fixed. The headline was **4/4 convergent from four different angles**: `_Locked.__exit__` unlinked `.marks.lock` on the no-op path, and `flock` binds to an INODE โ€” so a writer blocked on the old inode proceeds while the next writer creates a fresh lock file and takes it at once. Two processes then run the read-modify-write concurrently and the later `os.replace` drops a mark, with both of them obeying the protocol. **The cleanup existed to protect the booth's TTL and it was failing at that too**: creating and removing a directory entry bumps the DIRECTORY's mtime, which is what `_newest_mtime` actually seeds from, so a no-op reset the clock it was written to leave alone. Same code region, two defects, one fix โ€” never unlink the lock, exempt `..lock` dotfiles from `_newest_mtime`, and put the directory's mtime back after creating one. Full triage in `persistent-memory.d/2026-09-22-bug-hunt-panel.md`.