Commit d6a3dbe
committed
Fix theoretical torn page hazard.
The original report was concerned with a possible inconsistency
between the heap and the visibility map, which I was unable to
confirm. The concern has been retracted.
However, there did seem to be a torn page hazard when using
checksums. By not setting the heap page LSN during redo, the
protections of minRecoveryPoint were bypassed. Fixed, along with a
misleading comment.
It may have been impossible to hit this problem in practice, because
it would require a page tear between the checksum and the flags, so I
am marking this as a theoretical risk. But, as discussed, it did
violate expectations about the page LSN, so it may have other
consequences.
Backpatch to all supported versions.
Reported-by: Konstantin Knizhnik
Reviewed-by: Konstantin Knizhnik
Discussion: https://postgr.es/m/fed17dac-8cb8-4f5b-d462-1bb4908c029e@garret.ru
Backpatch-through: 111 parent 3eb8eec commit d6a3dbe
1 file changed
+4
-2
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8823 | 8823 | | |
8824 | 8824 | | |
8825 | 8825 | | |
8826 | | - | |
8827 | | - | |
| 8826 | + | |
8828 | 8827 | | |
8829 | 8828 | | |
8830 | 8829 | | |
8831 | 8830 | | |
8832 | 8831 | | |
8833 | 8832 | | |
8834 | 8833 | | |
| 8834 | + | |
| 8835 | + | |
| 8836 | + | |
8835 | 8837 | | |
8836 | 8838 | | |
8837 | 8839 | | |
| |||
0 commit comments