DatabaseLockBackend relies on releaseAll() at process shutdown and this interpreter never
shuts down. A held lock is worse than a stale cache, because Lock::wait() calls usleep()
inside a synchronous wasm call that nothing can interrupt -- it stalls rather than failing. The
table was measured empty on every site exercised, so this is the tripwire that turns an
unobserved hazard into a test rather than a stall.
Rows left in
semaphoreafter a request.DatabaseLockBackendrelies onreleaseAll()at process shutdown and this interpreter never shuts down. A held lock is worse than a stale cache, becauseLock::wait()callsusleep()inside a synchronous wasm call that nothing can interrupt -- it stalls rather than failing. The table was measured empty on every site exercised, so this is the tripwire that turns an unobserved hazard into a test rather than a stall.