Commit e4828e9
committed
Compare Xmin to previous Xmax when locking an update chain
Not doing so causes us to traverse an update chain that has been broken
by concurrent page pruning. All other code that traverses update chains
uses this check as one of the cases in which to stop iterating, so
replicate it here too. Failure to do so leads to erroneous CLOG,
subtrans or multixact lookups.
Per discussion following the bug report by J Smith in
CADFUPgc5bmtv-yg9znxV-vcfkb+JPRqs7m2OesQXaM_4Z1JpdQ@mail.gmail.com
as diagnosed by Andres Freund.1 parent c235a6a commit e4828e9
1 file changed
+14
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4814 | 4814 | | |
4815 | 4815 | | |
4816 | 4816 | | |
| 4817 | + | |
4817 | 4818 | | |
4818 | 4819 | | |
4819 | 4820 | | |
| |||
4839 | 4840 | | |
4840 | 4841 | | |
4841 | 4842 | | |
| 4843 | + | |
| 4844 | + | |
| 4845 | + | |
| 4846 | + | |
| 4847 | + | |
| 4848 | + | |
| 4849 | + | |
| 4850 | + | |
| 4851 | + | |
| 4852 | + | |
| 4853 | + | |
| 4854 | + | |
4842 | 4855 | | |
4843 | 4856 | | |
4844 | 4857 | | |
| |||
4939 | 4952 | | |
4940 | 4953 | | |
4941 | 4954 | | |
| 4955 | + | |
4942 | 4956 | | |
4943 | 4957 | | |
4944 | 4958 | | |
| |||
0 commit comments