Hi Tom,

By a bit of poking around, I am discovering interesting
things, but I am a bit lost...  (Before I go on, I should
state that I am running postgres 8.2.4 on RedHat Linux with
Dell hardware.)

Here's what I did:

I issued: select locktype, relation, transactionid, transaction, mode, pid, 
granted
            from pg_locks
           order by pid, relation;

and it returned bunch of lines like:
     locktype    | relation | transactionid | transaction |        mode         
|  pid  | granted 
  
---------------+----------+---------------+-------------+---------------------+-------+---------
   relation      |    16490 |               |   147605258 | ShareLock           
|  6697 | t
   relation      |    16496 |               |   147605258 | AccessExclusiveLock 
|  6697 | f
   transactionid |          |     147605258 |   147605258 | ExclusiveLock       
|  6697 | t
   relation      |    10328 |               |   147611506 | AccessShareLock     
|  7988 | t
   transactionid |          |     147611506 |   147611506 | ExclusiveLock       
|  7988 | t
   relation      |    16490 |               |   147611384 | AccessShareLock     
| 12930 | t
   relation      |    16496 |               |   147611384 | AccessShareLock     
| 12930 | f
   relation      |    16517 |               |   147611384 | AccessShareLock     
| 12930 | t
   transactionid |          |     147611384 |   147611384 | ExclusiveLock       
| 12930 | t
   relation      |    16490 |               |   147605344 | AccessShareLock     
| 18177 | t
   relation      |    16496 |               |   147605344 | AccessShareLock     
| 18177 | f
   relation      |    16517 |               |   147605344 | AccessShareLock     
| 18177 | t
   transactionid |          |     147605344 |   147605344 | ExclusiveLock       
| 18177 | t
   relation      |    16490 |               |   147611403 | AccessShareLock     
| 18825 | t
   relation      |    16496 |               |   147611403 | AccessShareLock     
| 18825 | f
   relation      |    16517 |               |   147611403 | AccessShareLock     
| 18825 | t

That pid 6697 caught my interest and I fished it out of "ps -ef":
  postgres  6697  4916  0 Dec15 ?        00:19:45 postgres: postgres canon 
[local] REINDEX waiting
(and for the sake of completeness...)
  postgres 12930  4916  0 11:24 ?        00:00:00 postgres: gbrush canon 
172.16.1.106(37819) SELECT waiting
  postgres 18177  4916  0 Dec15 ?        00:00:02 postgres: gbrush canon 
172.16.1.106(53874) SELECT waiting
  postgres 18825  4916  0 12:55 ?        00:00:00 postgres: tsakai canon 
127.0.0.1(44558) SELECT waiting

This (pid 6697) is a cron job from wee hour Saturday and it
is part of vacuuming script.  I have used this particular
script to do the vacuuming for a few weeks and never caused
hanging like this before.  I could kill this process from unix
level, but before I do so, would you please comment as to why
this might have happened and what repercussion might I have
from killing it, if any?

Thank you.

Regards,

Tena Sakai
[EMAIL PROTECTED]

-----Original Message-----
From: Tom Lane [mailto:[EMAIL PROTECTED]
Sent: Mon 12/17/2007 4:11 PM
To: Tena Sakai
Cc: pgsql-admin@postgresql.org
Subject: Re: [ADMIN] How would I "close" a atble? 
 
"Tena Sakai" <[EMAIL PROTECTED]> writes:
> I have a weired situation.  Out of 17 tables which
> comprise a database, one of them refuses to talk to
> me.  When I issue:
>   select * from marker;
> it hangs.

Some other session holding an exclusive lock on the table, perhaps?
Have you looked into pg_locks for matches to that table?

                        regards, tom lane

Reply via email to