From 9cce91dba0de4f00b98f7e12535cc0efd33c69a8 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 19 Jun 2007 22:01:15 +0000 Subject: [PATCH] Only log 'process acquired lock' if we actually did get the lock. This test seems inessential right now since the only control path for not getting the lock is via CHECK_FOR_INTERRUPTS which won't return control to ProcSleep, but it would be important if we ever allow the deadlock code to kill someone else's transaction instead of our own. --- src/backend/storage/lmgr/proc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c index d8cc9e1175..367c0e6cf8 100644 --- a/src/backend/storage/lmgr/proc.c +++ b/src/backend/storage/lmgr/proc.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/lmgr/proc.c,v 1.189 2007/06/19 20:13:21 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/storage/lmgr/proc.c,v 1.190 2007/06/19 22:01:15 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -887,7 +887,7 @@ ProcSleep(LOCALLOCK *locallock, LockMethod lockMethodTable) switch (deadlock_state) { case DS_NOT_YET_CHECKED: - /* Spurious wakeup as described above */ + /* Lock granted, or spurious wakeup as described above */ break; case DS_NO_DEADLOCK: case DS_SOFT_DEADLOCK: @@ -918,16 +918,17 @@ ProcSleep(LOCALLOCK *locallock, LockMethod lockMethodTable) (errmsg("process %d still waiting for %s on %s after %ld.%03d ms", MyProcPid, modename, buf.data, msecs, usecs))); - else + else if (MyProc->waitStatus == STATUS_OK) ereport(LOG, (errmsg("process %d acquired %s on %s after %ld.%03d ms", MyProcPid, modename, buf.data, msecs, usecs))); + /* ERROR will be reported later, so no message here */ pfree(buf.data); break; } case DS_HARD_DEADLOCK: - /* ERROR will be reported below, so no message here */ + /* ERROR will be reported later, so no message here */ break; } }