Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1ZIMaN-0002pC-Ic for pgsql-hackers@arkaria.postgresql.org; Thu, 23 Jul 2015 19:55:19 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1ZIMaN-0002PH-4o for pgsql-hackers@arkaria.postgresql.org; Thu, 23 Jul 2015 19:55:19 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1ZIMZ6-0000vM-Jw; Thu, 23 Jul 2015 19:54:00 +0000 Received: from smtp-auth.no-ip.com ([8.23.224.61] helo=out.smtp-auth.no-ip.com) by magus.postgresql.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1ZIMZ0-0006XG-TV; Thu, 23 Jul 2015 19:54:00 +0000 X-No-IP: alvh.no-ip.org@noip-smtp X-Report-Spam-To: abuse@no-ip.com Received: from alvin.alvh.no-ip.org (unknown [186.37.84.1]) (Authenticated sender: alvh.no-ip.org@noip-smtp) by smtp-auth.no-ip.com (Postfix) with ESMTPA id 08DD340157F; Thu, 23 Jul 2015 12:53:52 -0700 (PDT) Received: by alvin.alvh.no-ip.org (Postfix, from userid 1000) id 48EDFC2B; Thu, 23 Jul 2015 21:53:49 +0200 (CEST) Date: Thu, 23 Jul 2015 16:53:49 -0300 From: Alvaro Herrera To: Peter Geoghegan Cc: Noah Misch , Simon Riggs , Bruce Momjian , Andres Freund , Robert Haas , Tom Lane , Stephen Frost , Magnus Hagander , "pgsql-hackers@postgresql.org" , pgsql-core Subject: Re: Restore-reliability mode Message-ID: <20150723195349.GW5596@postgresql.org> References: <12510.1432958887@sss.pgh.pa.us> <20150530154559.GA25053@momjian.us> <20150530204727.GJ13944@alap3.anarazel.de> <20150531024845.GB13697@momjian.us> <20150603135049.GA74753@tornado.leadboat.com> <20150606195805.GA118899@tornado.leadboat.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="KsGdsel6WgEHnImy" Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org --KsGdsel6WgEHnImy Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit Peter Geoghegan wrote: > On Sat, Jun 6, 2015 at 12:58 PM, Noah Misch wrote: > > - Call VALGRIND_MAKE_MEM_NOACCESS() on a shared buffer when its local pin > > count falls to zero. Under CLOBBER_FREED_MEMORY, wipe a shared buffer > > when its global pin count falls to zero. > > Did a patch for this ever materialize? I think the first part would be something like the attached. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --KsGdsel6WgEHnImy Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="0001-add-valgrind-calls.patch" diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index e4b25587..83fde10 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -47,6 +47,7 @@ #include "storage/proc.h" #include "storage/smgr.h" #include "storage/standby.h" +#include "utils/memdebug.h" #include "utils/rel.h" #include "utils/resowner_private.h" #include "utils/timestamp.h" @@ -1438,6 +1439,9 @@ PinBuffer(volatile BufferDesc *buf, BufferAccessStrategy strategy) ref = NewPrivateRefCountEntry(b + 1); LockBufHdr(buf); + + VALGRIND_MAKE_MEM_DEFINED(BufHdrGetBlock(buf), BLCKSZ); + buf->refcount++; if (strategy == NULL) { @@ -1498,6 +1502,8 @@ PinBuffer_Locked(volatile BufferDesc *buf) */ Assert(GetPrivateRefCountEntry(b + 1, false) == NULL); + VALGRIND_MAKE_MEM_DEFINED(BufHdrGetBlock(buf), BLCKSZ); + buf->refcount++; UnlockBufHdr(buf); @@ -1543,6 +1549,8 @@ UnpinBuffer(volatile BufferDesc *buf, bool fixOwner) Assert(buf->refcount > 0); buf->refcount--; + VALGRIND_MAKE_MEM_NOACCESS(BufHdrGetBlock(buf), BLCKSZ); + /* Support LockBufferForCleanup() */ if ((buf->flags & BM_PIN_COUNT_WAITER) && buf->refcount == 1) --KsGdsel6WgEHnImy Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --KsGdsel6WgEHnImy--