Re: Bugs in TOAST handling, OID assignment and redo recovery
Alvaro Herrera <alvherre@2ndquadrant.com>
From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: Pavan Deolasee <pavan.deolasee@gmail.com>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2018-07-23T19:13:15Z
Lists: pgsql-hackers
On 2018-Apr-11, Peter Eisentraut 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? I didn't review your patch carefully, but +1 on the idea. By all means let's not forget this for pg12. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Ignore nextOid when replaying an ONLINE checkpoint.
- efbe36a2c1b0 9.5.13 landed
- 6943fb9275a5 9.4.18 landed
- 66d4b6bb8065 9.3.23 landed
- 060bb38d0750 9.6.9 landed
- d1e9079295e9 11.0 landed
- 08e6cda1c536 10.4 landed
-
Do not select new object OIDs that match recently-dead entries.
- 7448e7e23799 9.3.23 landed
- 5b3ed6b7880b 9.4.18 landed
- 3767216fbdb3 9.5.13 landed
- 8bba10f7e834 9.6.9 landed
- 5a11bf970705 10.4 landed
- 0408e1ed599b 11.0 landed