Re: error context for vacuum to include block number
Justin Pryzby <pryzby@telsasoft.com>
From: Justin Pryzby <pryzby@telsasoft.com>
To: Michael Paquier <michael@paquier.xyz>
Cc: pgsql-hackers@postgresql.org, Andres Freund <andres@anarazel.de>
Date: 2019-12-11T14:36:48Z
Lists: pgsql-hackers
Attachments
On Wed, Dec 11, 2019 at 09:15:07PM +0900, Michael Paquier wrote: > On Fri, Dec 06, 2019 at 10:23:25AM -0600, Justin Pryzby wrote: > > Find attached updated patch: > > . Use structure to include relation name. > > . Split into a separate patch rename of "StringInfoData buf". > > > > 2019-11-27 20:04:53.640 CST [14244] ERROR: canceling statement due to statement timeout > > 2019-11-27 20:04:53.640 CST [14244] CONTEXT: block 2314 of relation t > > 2019-11-27 20:04:53.640 CST [14244] STATEMENT: vacuum t; > > > > I tried to use BufferGetTag() to avoid using a 2ndary structure, but fails if > > the buffer is not pinned. > > No problem from me to add more context directly in lazy_scan_heap(). Do you mean without a callback ? I think that's necessary, since the IO errors would happen within ReadBufferExtended, but we don't want to polute that with errcontext. And cannot call errcontext on its own: FATAL: errstart was not called > So I would suggest the following instead: > "while scanning block %u of relation \"%s.%s\"" Done in the attached.
Commits
-
Avoid calls to RelationGetRelationName() and RelationGetNamespace() in
- ef75140fe756 13.0 landed
-
Introduce vacuum errcontext to display additional information.
- b61d161c1463 13.0 landed
-
Fix mesurement of elapsed time during truncating heap in VACUUM.
- 007491979461 13.0 cited
-
Allow vacuum command to process indexes in parallel.
- 40d964ec997f 13.0 cited
-
Refactor code dedicated to index vacuuming in vacuumlazy.c
- 1ab41a3c8edc 13.0 landed
-
Remove duplicated progress reporting during heap scan of VACUUM
- e5a02e0fc68b 13.0 landed