Re: Bugs in TOAST handling, OID assignment and redo recovery

From: Pavan Deolasee <pavan(dot)deolasee(at)gmail(dot)com>
To: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Bugs in TOAST handling, OID assignment and redo recovery
Date: 2018-04-18 06:37:52
Message-ID: CABOikdPZP5q0EbFibREgCE2PKb8ZRHJGwYHqCDnHkFaKeXDJEQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, Apr 12, 2018 at 5:53 AM, Peter Eisentraut <
peter(dot)eisentraut(at)2ndquadrant(dot)com> wrote:

> On 4/10/18 06:29, Pavan Deolasee wrote:
> > One of our 2ndQuadrant support customers recently reported a sudden rush
> > of TOAST errors post a crash recovery, nearly causing an outage. Most
> > errors read like this:
> >
> > ERROR: unexpected chunk number 0 (expected 1) for toast value nnnn
>
> While researching this, I found that the terminology in this code is
> quite inconsistent. It talks about chunks ids, chunk indexes, chunk
> numbers, etc. seemingly interchangeably. The above error is actually
> about the chunk_seq, not about the chunk_id, as one might think.
>
> The attached patch is my attempt to clean this up a bit. Thoughts?
>

While I agree that we should clean it up, I wonder if changing error text
would be a good idea. These errors are being reported by a very long time
and if we change the text, we might forget the knowledge about the past
reports.

Also, "toast value" is same as "chunk_id". Should we clean up something
there too? "chunk_seq number" -- should that be just "chunk_seq"?

Thanks,
Pavan

--
Pavan Deolasee http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Thomas Munro 2018-04-18 06:55:52 Re: [HACKERS] PATCH: Keep one postmaster monitoring pipe per process
Previous Message Michael Paquier 2018-04-18 06:22:40 Double-writes, take two?