Re: Old row version in hot chain become visible after a freeze
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: "Wood, Dan" <hexpert@amazon.com>
Cc: "pgsql-bugs@postgresql.org" <pgsql-bugs@postgresql.org>
Date: 2017-08-31T22:56:20Z
Lists: pgsql-bugs
Hi Dan, Nice to hear from you. On Thu, Aug 31, 2017 at 3:36 PM, Wood, Dan <hexpert@amazon.com> wrote: > Because tupgone is false we freeze instead of deleting. Freezing a DEAD > tuple makes it visible. Here is a comment in heap_prepare_freeze_tuple() > > > > * It is assumed that the caller has checked the tuple with > > * HeapTupleSatisfiesVacuum() and determined that it is not HEAPTUPLE_DEAD Funny that there'd be another bug associated with heap_prepare_freeze_tuple() so soon after the last one was discovered. Are you aware of the other one [1]? BTW, I just posted a patch to enhance amcheck, to allow it to verify that an index has all the entries that it ought to [2]. Perhaps you'd find it useful for this kind of thing. I welcome your feedback on that. [1] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=31b8db8e6c1fa4436116f4be5ca789f3a01b9ebf;hp=f1dae097f2945ffcb59a9f236843e0e0bbf0920d [2] https://commitfest.postgresql.org/14/1263/ -- Peter Geoghegan
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