Re: How can you have an Exclusive Lock on nothing? please help me understand this lock monitoring query output - Mailing list pgsql-general

From Jerry Sievers
Subject Re: How can you have an Exclusive Lock on nothing? please help me understand this lock monitoring query output
Date
Msg-id 87aafss10k.fsf@comcast.net
Whole thread Raw
In response to How can you have an Exclusive Lock on nothing? please help me understand this lock monitoring query output  (Aleksey Tsalolikhin <atsaloli.tech@gmail.com>)
List pgsql-general
Aleksey Tsalolikhin <atsaloli.tech@gmail.com> writes:

> Hi.  I use the following query (from
> http://wiki.postgresql.org/wiki/Lock_Monitoring)
> to monitor locks; and I've got an ExlusiveLock that does not have a relation
> name associated with it.  What is locked with the Exclusive Lock in this case,
> please?  (it's between "d" and "e" tables below)

Try printing all fields from the pg_lock view and you may be
enlightened.

Transaction IDs are one example of a lock that is not on a relation.

Also be aware that if you are viewing a lock that is for some other DB
besides the one you're sitting in, the pg_class join will give nothing.

Also be aware that

> psql -U postgres -d ddcKeyGen -c 'select
>      pg_class.relname,pg_locks.transactionid, pg_locks.mode, pg_locks.granted,
>      pg_stat_activity.usename,substr(pg_stat_activity.current_query,1,50),
> pg_stat_activity.query_start,
>      age(now(),pg_stat_activity.query_start) as "age", pg_stat_activity.procpid
>    from pg_stat_activity,pg_locks left
>      outer join pg_class on (pg_locks.relation = pg_class.oid)
>    where pg_locks.pid=pg_stat_activity.procpid order by query_start;'
>
>
>
> Output:
>
>  a_index                       |               | AccessShareLock
>    | t       | user |
>   | 2011-04-14 17:36:01.257669-07 | 00:21:28.847825 |   16798
>  b_index                     |               | AccessShareLock
>  | t       | user |
> | 2011-04-14 17:36:01.257669-07 | 00:21:28.847825 |   16798
>  c_index                     |               | AccessShareLock
>  | t       | user |
> | 2011-04-14 17:36:01.257669-07 | 00:21:28.847825 |   16798
>  d                                        |               |
> AccessShareLock          | t       | user |
>                         | 2011-04-14 17:36:01.257669-07 |
> 00:21:28.847825 |   16798
>                                                        |
> | ExclusiveLock            | t       | user |
>                           | 2011-04-14 17:36:01.257669-07 |
> 00:21:28.847825 |   16798
>  e                                               |               |
> AccessShareLock          | t       | user |
>                         | 2011-04-14 17:36:01.257669-07 |
> 00:21:28.847825 |   16798
>  f_index                     |               | ShareLock
>  | t       | user |
> | 2011-04-14 17:36:01.257669-07 | 00:21:28.847825 |   16798
>  g_index             |               | AccessShareLock          | t
>    | user |                                                    |
> 2011-04-14 17:36:01.257669-07 | 00:21:28.847825 |   16798
>
>
> Thanks,
> Aleksey

--
Jerry Sievers
Postgres DBA/Development Consulting
e: gsievers19@comcast.net
p: 305.321.1144

pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: UUID can be written to row when passed as parameter/argument to a PL/pgSQL function. Feature or bug?
Next
From: Bosco Rama
Date:
Subject: Cross-schema view issue/question