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

From: Jerry Sievers <gsievers19(at)comcast(dot)net>
To: Aleksey Tsalolikhin <atsaloli(dot)tech(at)gmail(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: How can you have an Exclusive Lock on nothing? please help me understand this lock monitoring query output
Date: 2011-04-15 02:26:35
Message-ID: 87aafss10k.fsf@comcast.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Aleksey Tsalolikhin <atsaloli(dot)tech(at)gmail(dot)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(at)comcast(dot)net
p: 305.321.1144

In response to

Browse pgsql-general by date

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