Re: Old row version in hot chain become visible after a freeze
Michael Paquier <michael.paquier@gmail.com>
From: Michael Paquier <michael.paquier@gmail.com>
To: Peter Geoghegan <pg@bowt.ie>
Cc: "Wood, Dan" <hexpert@amazon.com>, "pgsql-bugs@postgresql.org" <pgsql-bugs@postgresql.org>
Date: 2017-09-01T03:46:44Z
Lists: pgsql-bugs
On Fri, Sep 1, 2017 at 12:25 PM, Peter Geoghegan <pg@bowt.ie> wrote: > On Thu, Aug 31, 2017 at 3:36 PM, Wood, Dan <hexpert@amazon.com> wrote: >> I’ve found a bug in Postgres which causes old row versions to appear in a >> table. DEAD rows in a hot chain are getting frozen and becoming visible. >> I’ve repro’d this in both 9.6.1 and 11-devel. > > I can confirm that this goes all the way back to 9.3, where "for key > share"/foreign key locks were introduced. Hm. That looks pretty bad to me... It is bad luck that this report happens just after the last round of minor releases has been out, and we would have needed at least a couple of days and a couple of pairs of eyes to come up with a correct patch. (I haven't looked at the proposed solution and the attached patch yet, so no opinions yet). -- Michael
Commits
-
Fix freezing of a dead HOT-updated tuple
- fb6de78a291b 9.5.10 landed
- d149aa762c05 9.3.20 landed
- 46c35116ae1a 10.0 landed
- 3a135bdb1b5e 9.6.6 landed
- 232c7cbcbbc6 9.4.15 landed
- 20b655224249 11.0 landed
-
Fix potential data corruption during freeze
- 31b8db8e6c1f 10.0 cited
-
Clarify the contract of partition_rbound_cmp().
- f1dae097f294 10.0 cited