From: Tom Lane Date: Sat, 7 May 2005 18:14:25 +0000 (+0000) Subject: Fix case in which a debug printout would print already-pfreed data. X-Git-Tag: REL9_0_0~10243 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=4cd4ed0cc29001b019d6ae873d18bc09ab72cf64;p=pg-rex%2Fsyncrep.git Fix case in which a debug printout would print already-pfreed data. --- diff --git a/src/backend/access/transam/multixact.c b/src/backend/access/transam/multixact.c index 628107634b..44c9541209 100644 --- a/src/backend/access/transam/multixact.c +++ b/src/backend/access/transam/multixact.c @@ -31,7 +31,7 @@ * Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California * - * $PostgreSQL: pgsql/src/backend/access/transam/multixact.c,v 1.2 2005/05/03 19:42:40 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/access/transam/multixact.c,v 1.3 2005/05/07 18:14:25 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -310,9 +310,9 @@ MultiXactIdExpand(MultiXactId multi, TransactionId xid) { if (TransactionIdEquals(members[i], xid)) { - pfree(members); debug_elog4(DEBUG2, "Expand: %u is already a member of %u", xid, multi); + pfree(members); return multi; } } @@ -376,8 +376,8 @@ MultiXactIdIsRunning(MultiXactId multi) { if (TransactionIdEquals(members[i], myXid)) { - pfree(members); debug_elog3(DEBUG2, "IsRunning: I (%d) am running!", i); + pfree(members); return true; } } @@ -391,14 +391,15 @@ MultiXactIdIsRunning(MultiXactId multi) { if (TransactionIdIsInProgress(members[i])) { - pfree(members); debug_elog4(DEBUG2, "IsRunning: member %d (%u) is running", - i, members[i]); + i, members[i]); + pfree(members); return true; } } pfree(members); + debug_elog3(DEBUG2, "IsRunning: %u is not running", multi); return false; @@ -646,6 +647,7 @@ CreateMultiXactId(int nxids, TransactionId *xids) /* Store the new MultiXactId in the local cache, too */ mXactCachePut(multi, nxids, xids); + debug_elog2(DEBUG2, "Create: all done"); return multi;