Re: new heapcheck contrib module
Andres Freund <andres@anarazel.de>
Hi, On 2020-07-31 12:42:51 -0400, Robert Haas wrote: > On Fri, Jul 31, 2020 at 12:33 PM Andres Freund <andres@anarazel.de> wrote: > > I'm not sure what I was thinking "back then", but right now I'd argue > > that the best lock against vacuum isn't a SUE, but announcing the > > correct ->xmin, so you can be sure that clog entries won't be yanked out > > from under you. Potentially with the right flag sets to avoid old enough > > tuples eing pruned. > > Suppose we don't even do anything special in terms of advertising > xmin. What can go wrong? To have a problem, we've got to be running > concurrently with a vacuum that truncates clog. The clog truncation > must happen before our XID lookups, but vacuum has to remove the XIDs > from the heap before it can truncate. So we have to observe the XIDs > before vacuum removes them, but then vacuum has to truncate before we > look them up. But since we observe them and look them up while holding > a ShareLock on the buffer, this seems impossible. What's the flaw in > this argument? The page could have been wrongly marked all-frozen. There could be interactions between heap and toast table that are checked. Other bugs could apply, like a broken hot chain or such. > If we do need to do something special in terms of advertising xmin, > how would you do it? Normally it happens by registering a snapshot, > but here all we would have is an XID; specifically, the value of > relfrozenxid that we observed. An appropriate procarray or snapmgr function would probably suffice? Greetings, Andres Freund
Commits
-
Add pg_amcheck, a CLI for contrib/amcheck.
- 9706092839db 14.0 landed
-
Refactor and generalize the ParallelSlot machinery.
- f71519e545a3 14.0 landed
-
Generalize parallel slot result handling.
- 418611c84d00 14.0 landed
-
Move some code from src/bin/scripts to src/fe_utils to permit reuse.
- e955bd4b6c2b 14.0 landed
-
Factor pattern-construction logic out of processSQLNamePattern.
- 2c8726c4b0a4 14.0 landed
-
Doc: clean up verify_heapam() documentation.
- 4c49d8fc15ee 14.0 landed
-
Fix more portability issues in new amcheck code.
- 321633e17b07 14.0 landed
-
Fix portability issues in new amcheck test.
- 860593ec3bd1 14.0 landed
-
Try to avoid a compiler warning about using fxid uninitialized.
- 8bb0c9770e80 14.0 landed
-
Extend amcheck to check heap pages.
- 866e24d47db1 14.0 landed
-
Adjust walsender usage of xlogreader, simplify APIs
- 850196b610d2 13.0 cited
-
Improve checking of child pages in contrib/amcheck.
- d114cc538715 13.0 cited
-
Sanitize line pointers within contrib/amcheck.
- a9ce839a3137 12.0 cited
-
Fix possible sorting error when aborting use of abbreviated keys.
- 008c4135ccf6 10.0 cited