v1.56.104: reentrant App.lock()/unlock() (per-thread owner id + depth) โ DEFINITIVE fix for the authed whole-site freeze. lldb on a local repro showed handlers (renderHandleProfilePage, renderRepoListPage, issueDetailPage) hold conn_mutex then call writePublicHtml, which re-acquires the same non-reentrant mutex via navStateFromRequest->getAccountSessionFromRequest to render the session nav -> every request with a kepr_session cookie self-deadlocked the daemon. Reentrant lock kills the whole class; safe because pg_shim buffers each statement at execute. VERIFIED locally w/ seeded operator session: all authed pages 200 (were hanging). (Note: first .104 build deployed mislabeled as .103 due to a failed sed; this is the correctly-labeled rebuild.) musl ReleaseSafe exit 0; test 646 pass / 1 pre-existing fail.
$ koh steal kepr.uk/kepr@18ca67165554
·
parent: 182638f78160
discussion
log in to leave a comment.