Thread: Old active connections?

Old active connections?

From
Hans Sebastian
Date:
Hello group,

We run postgresql 10.3 for a python django app with gunicorn on nginx with django version 1.9.5.

Recently, we started noticing there are many active connections from the django app server that are more than 1 week old still showing in pg_stat_activity.

Even though the django server has been stopped (all processes killed), the active connections still persist. All of these connections are UPDATE queries that look pretty normal.

Does anyone know the reasons they could be there? What could have caused them being still active?

This has become an issue as we started getting "FATAL:  remaining connection slots are reserved for non-replication superuser connections"

Thanks,
-hans

Re: Old active connections?

From
Adrian Klaver
Date:
On 04/17/2018 05:02 PM, Hans Sebastian wrote:
> Hello group,
> 
> We run postgresql 10.3 for a python django app with gunicorn on nginx 
> with django version 1.9.5.
> 
> Recently, we started noticing there are many active connections from the 
> django app server that are more than 1 week old still showing in 
> pg_stat_activity.
> 
> Even though the django server has been stopped (all processes killed), 
> the active connections still persist. All of these connections are 
> UPDATE queries that look pretty normal.

Are sure they are coming from Django?

> 
> Does anyone know the reasons they could be there? What could have caused 
> them being still active?

Can we see the data from pg_stat_activity for those queries?

> 
> This has become an issue as we started getting "FATAL:  remaining 
> connection slots are reserved for non-replication superuser connections"
> 
> Thanks,
> -hans
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com


Re: Old active connections?

From
"David G. Johnston"
Date:
On Tue, Apr 17, 2018 at 5:02 PM, Hans Sebastian <hnsbstn@gmail.com> wrote:
Hello group,

We run postgresql 10.3 for a python django app with gunicorn on nginx with django version 1.9.5.

Recently, we started noticing there are many active connections from the django app server that are more than 1 week old still showing in pg_stat_activity.

​There are quite a few timestamp columns, and a state field, in that view - you should show some example records instead of leaving people to guess whether you are presenting an accurate interpretation of the data.

Even though the django server has been stopped (all processes killed), the active connections still persist. All of these connections are UPDATE queries that look pretty normal.

Does anyone know the reasons they could be there? What could have caused them being still active?

This has become an issue as we started getting "FATAL:  remaining connection slots are reserved for non-replication superuser connections"


​Some live process somewhere seems to be keeping an open session with the PostgreSQL service...

Long-lived non-idle statements would likely be waiting for a lock to be released.

David J.

Re: Old active connections?

From
Michael Paquier
Date:
On Tue, Apr 17, 2018 at 05:11:10PM -0700, David G. Johnston wrote:
> Long-lived non-idle statements would likely be waiting for a lock to be
> released.

Be very careful with transactions marked as "idle in transaction" for a
long time.  Long-running transactions prevent VACUUM to do its work as
the oldest XID in view is not updated, causing performance to go down,
and bloat to go up.
--
Michael

Attachment