Re: display offset along with block number in vacuum errors

Amit Kapila <amit.kapila16@gmail.com>

From: Amit Kapila <amit.kapila16@gmail.com>
To: Masahiko Sawada <masahiko.sawada@2ndquadrant.com>
Cc: Justin Pryzby <pryzby@telsasoft.com>, Mahendra Singh Thalor <mahi6run@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2020-08-14T10:36:31Z
Lists: pgsql-hackers

Attachments

On Mon, Aug 10, 2020 at 10:24 AM Masahiko Sawada
<masahiko.sawada@2ndquadrant.com> wrote:
>
> It's true that heap_page_is_all_visible() is called from only
> lazy_vacuum_page() but I'm concerned it would lead misleading since
> it's not actually removing tuples but just checking after vacuum. I
> guess that the errcontext should show what the process is actually
> doing and therefore help the investigation, so I thought VACUUM_HEAP
> might not be appropriate for this case. But I see also your point.
> Other vacuum error context phases match with vacuum progress
> information phrases. So in heap_page_is_all_visible (), I agree it's
> better to update the offset number and keep the phase VACUUM_HEAP
> rather than do nothing.
>

Okay, I have changed accordingly and this means that the offset will
be displayed for the vacuum phase as well. Apart from this, I have
fixed all the comments raised by me in the attached patch. One thing
we need to think is do we want to set offset during heap_page_prune
when called from lazy_scan_heap? I think the code path for
heap_prune_chain is quite deep, so an error can occur in that path.
What do you think?

-- 
With Regards,
Amit Kapila.

Commits

  1. Add additional information in the vacuum error context.

  2. Improve the vacuum error context phase information.

  3. Introduce vacuum errcontext to display additional information.