Re: error context for vacuum to include block number
Justin Pryzby <pryzby@telsasoft.com>
From: Justin Pryzby <pryzby@telsasoft.com>
To: Masahiko Sawada <masahiko.sawada@2ndquadrant.com>, Alvaro Herrera <alvherre@2ndquadrant.com>, Amit Kapila <amit.kapila16@gmail.com>
Cc: Andres Freund <andres@anarazel.de>, Michael Paquier <michael@paquier.xyz>, pgsql-hackers@postgresql.org
Date: 2020-03-17T03:51:19Z
Lists: pgsql-hackers
On Tue, Mar 03, 2020 at 10:05:42PM +0900, Masahiko Sawada wrote: > I was concerned about fsm vacuum; vacuum error context might show heap > scan while actually doing fsm vacuum. But perhaps we can update > callback args for that. That would be helpful for user to distinguish > that the problem seems to be either in heap vacuum or in fsm vacuum. On Tue, Mar 03, 2020 at 04:49:00PM -0300, Alvaro Herrera wrote: > Your use of the progress-report enum now has two warts -- the "-1" > value, and this one, > > > +#define PROGRESS_VACUUM_PHASE_VACUUM_FSM 7 /* For error reporting only */ > > I'd rather you define a new enum, in lazyvacuum.c. On Mon, Mar 16, 2020 at 11:44:25AM +0530, Amit Kapila wrote: > > On Wed, Mar 04, 2020 at 04:21:06PM +0900, Masahiko Sawada wrote: > > > Thank you for updating the patch. But we have two more places where we > > > do fsm vacuum. > > > > Oops, thanks. ... > it is not clear whether it is a good idea to keep a phase like > VACUUM_ERRCB_PHASE_VACUUM_FSM as it has added additional updates in > multiple places in the code. I think you're suggesting to rip out VACUUM_ERRCB_PHASE_VACUUM_FSM, and allow reporting any errors there with an error context like "while scanning heap". An alternative in the three places using VACUUM_ERRCB_PHASE_VACUUM_FSM is to set: |phase = VACUUM_ERRCB_PHASE_UNKNOWN; to avoid reporting any error context until another phase is set. -- Justin
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