On Tue, Feb 24, 2026 at 4:31 PM ji xu <[email protected]> wrote: > > > Chao Li <[email protected]> 于2026年2月24日周二 14:29写道: >> >> Since this function is clearly operating on the parameter proc, the only >> statement that touches MyProc looks suspicious. It should reset >> proc->waitStart, not MyProc->waitStart. >> >> As written, it will incorrectly clear the caller’s waitStart instead of the >> awakened backend’s, potentially leaving a stale waitStart value in the >> target PGPROC.
Thanks for the report! You’re right. This leaves proc->waitStart unreset for a backend that has woken up from a lock wait. In practice this doesn't seem to cause user-visible issues, since pg_locks.waitstart is reported as NULL when pg_locks.granted is true, regardless of proc->waitStart. That said, the behavior is incorrect, so I'm feeling inclined to backpatch a fix. Thoughts? > The fix looks correct to me. I applied it locally and build and "make check" > passed from my side. Sounds good to me. Regards, -- Fujii Masao
