forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit6737aa7
committed
Fix HeapTupleSatisfiesVacuum on aborted updater xacts
By using only the macro that checks infomask bitsHEAP_XMAX_IS_LOCKED_ONLY to verify whether a multixact is not anupdater, and not the full HeapTupleHeaderIsOnlyLocked, it would come tothe wrong result in case of a multixact containing an aborted update;therefore returning the wrong result code. This would cause predicate.cto break completely (as in bug report #8273 from David Leverton), andcertain index builds would misbehave. As far as I can tell, othercallers of the bogus routine would make harmless mistakes or not beaffected by the difference at all; so this was a pretty narrow case.Also, no other user of the HEAP_XMAX_IS_LOCKED_ONLY macro is ascareless; they all check specifically for the HEAP_XMAX_IS_MULTI case,and they all verify whether the updater is InvalidXid before concludingthat it's a valid updater. So there doesn't seem to be any similar bug.1 parentc8fb821 commit6737aa7
1 file changed
+3
-1
lines changedLines changed: 3 additions & 1 deletion
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
1287 | 1287 |
| |
1288 | 1288 |
| |
1289 | 1289 |
| |
1290 |
| - | |
| 1290 | + | |
| 1291 | + | |
| 1292 | + | |
1291 | 1293 |
| |
1292 | 1294 |
| |
1293 | 1295 |
| |
|
0 commit comments
Comments
(0)