postgresql/src
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
..
backend Avoid resetting Xmax when it's a multi with an aborted update 2013-12-05 12:21:55 -03:00
bin Translation updates 2013-12-02 00:09:43 -05:00
common pgindent run for release 9.3 2013-05-29 16:58:43 -04:00
include Stamp 9.3.2. 2013-12-02 15:57:48 -05:00
interfaces Stamp 9.3.2. 2013-12-02 15:57:48 -05:00
makefiles Revert "Backpatch pgxs vpath build and installation fixes." 2013-10-07 22:32:04 -04:00
pl Translation updates 2013-12-02 00:09:43 -05:00
port Stamp 9.3.2. 2013-12-02 15:57:48 -05:00
template Remove _FORTIFY_SOURCE 2012-10-10 21:42:38 -04:00
test Avoid resetting Xmax when it's a multi with an aborted update 2013-12-05 12:21:55 -03:00
timezone Update time zone data files to tzdata release 2013h. 2013-12-01 14:12:01 -05:00
tools Minor spelling fixes 2013-06-01 10:18:59 -04:00
tutorial Modernize string literal syntax in tutorial example. 2013-01-19 17:20:32 -05:00
.gitignore Convert cvsignore to gitignore, and add .gitignore for build targets. 2010-09-22 12:57:04 +02:00
bcc32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00
DEVELOPERS Replace a couple of references to files that no longer exist in the source 2009-05-04 08:08:47 +00:00
Makefile Create libpgcommon, and move pg_malloc et al to it 2013-02-12 11:21:05 -03:00
Makefile.global.in Revert "Backpatch pgxs vpath build and installation fixes." 2013-10-07 22:32:04 -04:00
Makefile.shlib Add pkg-config files for libpq and ecpg libraries 2013-03-31 16:58:40 -04:00
nls-global.mk NLS: Use msgmerge --previous option 2012-12-13 23:12:12 -05:00
win32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00