Re: Old row version in hot chain become visible after a freeze
Alvaro Herrera <alvherre@alvh.no-ip.org>
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Michael Paquier <michael.paquier@gmail.com>
Cc: Peter Geoghegan <pg@bowt.ie>, "Wood, Dan" <hexpert@amazon.com>, "pgsql-bugs@postgresql.org" <pgsql-bugs@postgresql.org>, Andres Freund <andres@anarazel.de>
Date: 2017-09-06T13:27:38Z
Lists: pgsql-bugs
Attachments
- 0001-test-cases.patch (text/plain)
Another thing is that if you're going through heap_copy_data, the tuple is only checked for DEAD, not RECENTLY_DEAD. Maybe there is no bug here but I'm not sure yet. I attach the patch as I have it now -- mostly comment tweaks, but also the change to not mark page as all-frozen when we skip freezing a recently read tuple. I also renamed the test case, because I think it may be possible to reach the problem code without involving a multixact. Haven't tried too hard though. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
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