HI
I am using PG 8.1.4, and my server was stop service, and when I checked the log, I found that some process had locked pg_listener in ExclusiveLock, it blocked all of the following processes which use NOTIFY/LISTEN. Can anyone tell me why pg_listener is locked forever?
max | granted | locks | pid | query_age | current_query
-------------------------------+---------+-------+-------+-----------------+-----------------
2011-01-09 08:12:01.941403+08 | t | 1 | 23864 | 00:00:13.863773 | LISTEN LABC20
2011-01-09 08:12:01.941403+08 | t | 1 | 20223 | 05:18:36.472416 | <IDLE>
2011-01-09 08:12:01.941403+08 | t | 1 | 23453 | 00:00:43.793547 | LISTEN LABD21
2011-01-09 08:12:01.941403+08 | t | 1 | 20051 | 00:01:30.370326 | <IDLE>
.....
2011-01-09 08:12:01.941403+08 | t | 1 | 19805 | 00:01:23.648079 | <IDLE>
2011-01-09 08:12:01.941403+08 | t | 1 | 23872 | 00:00:13.79683 | LISTEN LABD21
2011-01-09 08:12:01.941403+08 | t | 1 | 23844 | 00:00:15.338939 | LISTEN LABE11
(100 rows)
now | relname | transaction | pid | mode | granted
-------------------------------+-------------+-------------+-------+-----------------+---------
2011-01-09 08:11:01.883414+08 | pg_listener | 835435890 | 19759 | ExclusiveLock | f
2011-01-09 08:11:01.883414+08 | pg_listener | 835436051 | 20444 | ExclusiveLock | f
2011-01-09 08:11:01.883414+08 | pg_listener | 835435898 | 19695 | ExclusiveLock | f
2011-01-09 08:11:01.883414+08 | pg_listener | 835435963 | 20090 | ExclusiveLock | f
2011-01-09 08:11:01.883414+08 | pg_listener | 835436024 | 20285 | ExclusiveLock | f
......
2011-01-09 08:11:01.883414+08 | pg_listener | 835436007 | 20247 | ExclusiveLock | f
(176 rows)
Before that there are two deadlock detected
Jan 9 08:10:40 SUC01 postgres[19767]: [2-1] ERROR: deadlock detected
Jan 9 08:10:40 SUC01 postgres[19767]: [2-2] DETAIL:
Jan 9 08:12:32 SUC01 postgres[19767]: [3-1] ERROR: deadlock detected
Jan 9 08:12:32 SUC01 postgres[19767]: [3-2] DETAIL:
Jan 9 08:12:32 SUC01 postgres[19767]: [3-3] STATEMENT: UNLISTEN LABD11
Thanks a lot
Richard