Re: Could someone please help us share the procedure to troubleshoot the locks on proc issues.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4/2/20 12:37 PM, postgann2020 s wrote:
Hi Team,

Good Evening,

Could someone please help us share the procedure to troubleshoot the locks on proc issues.

Environment:
============
 1 pgpool server (Master Pool Node) using Straming replication with load balancing
  4 DB nodes (1Master and 3 Slaves).

  Versions:
  1. postgres: 9.5.15
  2. pgpool   : 3.9
  3. repmgr:  4.1

We are continuously facing locking issues for below procedures , due to this the  rest of the call for these procs going into waiting state.Which cause the DB got hung. Below are the procs  running with DB_User2 from the application.

1. select * from Schema1.duct_remove_validation($1,$2,$3,$4)  ==> This proc it self calling Schema1.cable_remove_validation($1,$2). 2. select * from Schema1.cable_remove_validation($1,$2)  ==> This is also calling from the applications

To figure out below we need to see what is happening in above.


if we ran explain analyze, its taking msec only, but if we run simultaneouly from application getting locked and waiting state.

We have ran below query for showing blocking queries and attached output in Blocking_Queries_with_PID.csv file:

SELECT
pl.pid as blocked_pid
,psa.usename as blocked_user
,pl2.pid as blocking_pid
,psa2.usename as blocking_user
,psa.query as blocked_statement
FROM pg_catalog.pg_locks pl
JOIN pg_catalog.pg_stat_activity psa
ON pl.pid = psa.pid
JOIN pg_catalog.pg_locks pl2
JOIN pg_catalog.pg_stat_activity psa2
ON pl2.pid = psa2.pid
ON pl.transactionid = pl2.transactionid
AND pl.pid != pl2.pid
WHERE NOT pl.granted;

Output: attached output in Blocking_Queries_with_PID.csv file


The waiting connections are keep on accumulating and cause DB hung.
I have attached pg_stat_activity excel file with the user along with the proc queries which cause waiting state.

Finds:

There are total 18 connections for DB_User2 which are running only above 2 procs, Out of that only one connection with 18732 is running proc (select * from Schema1.duct_remove_validation($1,$2,$3,$4))from long time  and reset of all 17 connections are in waiting state from the long time.

There are many exclusive locks on table for 18732 and other process as well. I have attached pg_locks reference excel(Lock_Reference_For_PROC) with highlighted pid 18732.

Could someone please suggest the procedure to troubleshoot this issue.
Please find the attachment for reference.

Thanks,
Postgann.


--
Adrian Klaver
adrian.klaver@xxxxxxxxxxx





[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux