On Tue, Feb 24, 2026 at 4:31 PM ji xu <thanksgreed@gmail.com> wrote:
>
>
> Chao Li <li.evan.chao@gmail.com> 于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
astale 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