Error in backend/storage/lmgr/proc.c: ProcSleep() - Mailing list pgsql-bugs

From Tomasz Zielonka
Subject Error in backend/storage/lmgr/proc.c: ProcSleep()
Date
Msg-id 20010903065557.A6474@mult.i.pl
Whole thread Raw
Responses Re: Error in backend/storage/lmgr/proc.c: ProcSleep()  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Error in backend/storage/lmgr/proc.c: ProcSleep()  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
Hi!

Platform: PostgreSQL 7.1.3, Linux 2.4.8, egcs 2.91.66

PostgreSQL forgets to release lock until shutdown in this scenario:

CREATE TABLE dummy (X integer);


session1                       session2
------------------------------------------------------------
BEGIN;                       |
                             |BEGIN;
SELECT * FROM dummy;         |
                             |SELECT * FROM dummy;
LOCK TABLE dummy;            |
                             |LOCK TABLE dummy;
                              deadlock....
\q                            \q

Deadlock is OK here, but I can't access dummy table until I restart postmaster

Everything's fine, when I comment out * marked lines in
backend/storage/lmgr/proc.c:

      if (myHeldLocks != 0)
      {
          int         aheadRequests = 0;

          proc = (PROC *) MAKE_PTR(waitQueue->links.next);
          for (i = 0; i < waitQueue->size; i++)
          {
              /* Must he wait for me? */
              if (lockctl->conflictTab[proc->waitLockMode] & myHeldLocks)
              {
                  /* Must I wait for him ? */
*                 if (lockctl->conflictTab[lockmode] & proc->heldLocks)
*                 {
*                     /* Yes, can report deadlock failure immediately */
*                     MyProc->errType = STATUS_ERROR;
*                     return STATUS_ERROR;
*                 }

Then the standard deadlock detection procedure is used.

greetings,
tom

--
.signature: Too many levels of symbolic links

pgsql-bugs by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: Bug #435: Cannot connect to databases if using Capital
Next
From: Tom Lane
Date:
Subject: Re: RE: Error on postgresql driver (or pg_hba)