You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix mino_pcall catch arm: drop publish to last_error
The previous attempt at the lock-leak fix routed pcall's catch arm
through a non-throwing record_eval_diag variant. That fixed the
immediate longjmp problem, but it left a stale diag in last_error
that downstream code misread as a fresh error -- specifically
eval_impl's "evaled == NULL && mino_last_error != NULL" gate would
fire on a subsequent successful call's NULL arg-list and propagate
the stale diag, breaking the test runner mid-suite.
Drop the publish entirely. pcall now restores the eval bookkeeping
that was active at entry and returns -1 without touching
last_error / last_diag. Callers that want a diag set after pcall
returns -1 call set_eval_diag explicitly. record_eval_diag is
removed (no callers).
The lock-leak regression test from the previous attempt still
passes -- the throw is caught, the lock is released, the second
dosync completes -- it just doesn't observe a stale diag in
last_error anymore.
Internal suite 1513 / 7169 / 0. External baseline unchanged.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments