Fix an Assert bug(was my fault) pointed out by Tom Lane.
authorHiroshi Inoue <inoue@tpf.co.jp>
Mon, 10 Apr 2000 00:45:42 +0000 (00:45 +0000)
committerHiroshi Inoue <inoue@tpf.co.jp>
Mon, 10 Apr 2000 00:45:42 +0000 (00:45 +0000)
src/backend/storage/lmgr/proc.c

index 5e169114c3e0c6b3830d3e0ad1d9edef0b997ea3..82b40a333ce80e0c5f11d2084f31b77719561bc7 100644 (file)
@@ -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))