postgresql/src
Heikki Linnakangas 462a2f1f01 Fix RBM_ZERO_AND_LOCK mode to not acquire lock on local buffers.
Commit 81c45081 introduced a new RBM_ZERO_AND_LOCK mode to ReadBuffer, which
takes a lock on the buffer before zeroing it. However, you cannot take a
lock on a local buffer, and you got a segfault instead. The version of that
patch committed to master included a check for !isLocalBuf, and therefore
didn't crash, but oddly I missed that in the back-patched versions. This
patch adds that check to the back-branches too.

RBM_ZERO_AND_LOCK mode is only used during WAL replay, and in hash indexes.
WAL replay only deals with shared buffers, so the only way to trigger the
bug is with a temporary hash index.

Reported by Artem Ignatyev, analysis by Tom Lane.
2015-05-13 09:53:50 +03:00
..
backend Fix RBM_ZERO_AND_LOCK mode to not acquire lock on local buffers. 2015-05-13 09:53:50 +03:00
bin Properly send SCM status updates when shutting down service on Windows 2015-05-07 15:09:21 +02:00
common Unlink static libraries before rebuilding them. 2015-03-01 13:06:33 -05:00
include Teach autovacuum about multixact member wraparound. 2015-05-08 12:53:30 -04:00
interfaces Build every ECPG library with -DFRONTEND. 2015-04-24 19:29:21 -04:00
makefiles Remove USE_VPATH make variable from PGXS 2014-12-04 08:45:48 -05:00
pl Free SQLSTATE and SQLERRM no earlier than other PL/pgSQL variables. 2015-02-25 23:48:49 -05:00
port Build src/port/dirmod.c only on Windows. 2015-03-14 14:08:45 -04:00
template Revert to using --enable-auto-import in Cygwin builds. 2014-02-16 15:14:04 -05:00
test Fix incorrect checking of deferred exclusion constraint after a HOT update. 2015-05-11 12:25:44 -04:00
timezone Update time zone data files to tzdata release 2015a. 2015-01-30 22:45:58 -05:00
tools Build every ECPG library with -DFRONTEND. 2015-04-24 19:29:21 -04:00
tutorial pgindent run for 9.4 2014-05-06 12:12:18 -04: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 Fix installcheck case for tap tests 2014-12-24 10:32:02 -05:00
Makefile.shlib Unlink static libraries before rebuilding them. 2015-03-01 13:06:33 -05:00
nls-global.mk Setup error context callback for transaction lock waits 2014-03-19 15:10:36 -03:00
win32.mak Autoconfiscate selection of 64-bit int type for 64-bit large object API. 2012-10-07 21:52:43 -04:00