From 8a5851880ebfe8a517dd99e121df03cd6ad6760f Mon Sep 17 00:00:00 2001
From: Hiroshi Inoue <inoue@tpf.co.jp>
Date: Mon, 10 Apr 2000 00:45:42 +0000
Subject: [PATCH] Fix an Assert bug(was my fault) pointed out by Tom Lane.

---
 src/backend/storage/lmgr/proc.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/backend/storage/lmgr/proc.c b/src/backend/storage/lmgr/proc.c
index 5e169114c3e..82b40a333ce 100644
--- a/src/backend/storage/lmgr/proc.c
+++ b/src/backend/storage/lmgr/proc.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.70 2000/02/24 04:36:01 inoue Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.71 2000/04/10 00:45:42 inoue Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -47,7 +47,7 @@
  *		This is so that we can support more backends. (system-wide semaphore
  *		sets run out pretty fast.)				  -ay 4/95
  *
- * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.70 2000/02/24 04:36:01 inoue Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/lmgr/proc.c,v 1.71 2000/04/10 00:45:42 inoue Exp $
  */
 #include <sys/time.h>
 #include <unistd.h>
@@ -493,7 +493,12 @@ void	SetWaitingForLock(bool waiting)
 	lockWaiting = waiting;
 	if (lockWaiting)
 	{
-		Assert(MyProc->links.next != INVALID_OFFSET);
+		/* The lock was already released ? */
+		if (MyProc->links.next == INVALID_OFFSET)
+		{
+			lockWaiting = false;
+			return;
+		}
 		if (QueryCancel) /* cancel request pending */
 		{
 			if (GetOffWaitqueue(MyProc))
-- 
GitLab