Provide error context when an error is thrown within WaitOnLock().
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 29 Aug 2025 19:43:34 +0000 (15:43 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 29 Aug 2025 19:43:34 +0000 (15:43 -0400)
commitf727b63e810724c7187f38b2580b2915bdbc3c9c
tree69c292fc1218f0cee68fba0baa3547e88f354dfd
parente686010c5b47f2e7f7e4e8d31ef69efadbbc4d72
Provide error context when an error is thrown within WaitOnLock().

Show the requested lock level and the object being waited on,
in the same format we use for deadlock reports and similar errors.
This is particularly helpful for debugging lock-timeout errors,
since otherwise the user has very little to go on about which
lock timed out.  The performance cost of setting up the callback
should be negligible compared to the other tracing support already
present in WaitOnLock.

As in the deadlock-report case, we just show numeric object OIDs,
because it seems too scary to try to perform catalog lookups
in this context.

Reported-by: Steve Baldwin <steve.baldwin@gmail.com>
Author: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/1602369.1752167154@sss.pgh.pa.us
src/backend/storage/lmgr/lock.c