postgresql/src/backend/utils
Alvaro Herrera c6cd27e36b Avoid resetting Xmax when it's a multi with an aborted update
HeapTupleSatisfiesUpdate can very easily "forget" tuple locks while
checking the contents of a multixact and finding it contains an aborted
update, by setting the HEAP_XMAX_INVALID bit.  This would lead to
concurrent transactions not noticing any previous locks held by
transactions that might still be running, and thus being able to acquire
subsequent locks they wouldn't be normally able to acquire.

This bug was introduced in commit 1ce150b7bb; backpatch this fix to 9.3,
like that commit.

This change reverts the change to the delete-abort-savept isolation test
in 1ce150b7bb, because that behavior change was caused by this bug.

Noticed by Andres Freund while investigating a different issue reported
by Noah Misch.
2013-12-05 12:21:55 -03:00
..
adt Avoid potential buffer overflow crash 2013-11-23 07:30:16 -05:00
cache Account better for planning cost when choosing whether to use custom plans. 2013-08-24 15:14:21 -04:00
error Be more robust when strerror() doesn't give a useful result. 2013-11-07 16:33:18 -05:00
fmgr Add infrastructure for storing a VARIADIC ANY function's VARIADIC flag. 2013-01-21 20:26:15 -05:00
hash pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
init pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
mb pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
misc Fix assorted race conditions in the new timeout infrastructure. 2013-11-29 16:41:03 -05:00
mmgr Create libpgcommon, and move pg_malloc et al to it 2013-02-12 11:21:05 -03:00
resowner pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
sort Ensure 64bit arithmetic when calculating tapeSpace 2013-07-14 16:42:58 -04:00
time Avoid resetting Xmax when it's a multi with an aborted update 2013-12-05 12:21:55 -03:00
.gitignore Avoid maintaining three separate copies of the error codes list. 2011-02-03 22:32:49 -05:00
errcodes.txt Update copyrights for 2013 2013-01-01 17:15:01 -05:00
Gen_dummy_probes.sed Update copyrights for 2013 2013-01-01 17:15:01 -05:00
Gen_fmgrtab.pl Update copyrights for 2013 2013-01-01 17:15:01 -05:00
generate-errcodes.pl Update copyrights for 2013 2013-01-01 17:15:01 -05:00
Makefile Make handling of errcodes.h more consistent with other generated headers. 2011-02-04 09:29:10 -05:00
probes.d Update copyrights for 2013 2013-01-01 17:15:01 -05:00