Re: [pgAgent][Patch] Fixing connection pool leak

From: Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
To: Rob Emery <re-pgsql(at)codeweavers(dot)net>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: [pgAgent][Patch] Fixing connection pool leak
Date: 2017-10-23 05:00:51
Message-ID: CAG7mmowTcui-HaP1PqQjHf5Xg7CtjXL7LuxT=UyOSCUnzxfs0w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Rob,

How about this?

--

Thanks & Regards,

Ashesh Vashi
EnterpriseDB INDIA: Enterprise PostgreSQL Company
<http://www.enterprisedb.com>

*http://www.linkedin.com/in/asheshvashi*
<http://www.linkedin.com/in/asheshvashi>

On Sat, Oct 21, 2017 at 8:36 PM, Rob Emery <re-pgsql(at)codeweavers(dot)net> wrote:

> Hi,
>
> Following on from https://www.postgresql.org/message-id/CA%
> 2BOCxoz4tONxSpd1rdU-9SPKRzucz8Bar2CXkEDnCwV6H77ZyA%40mail.gmail.com
>
> I think I've identified and fixed the issue, please see the patch attached.
>
> As I understand it when there are multiple pgagent instances and they
> clash executing a job (i.e rc != 1 on job.cpp:38), the loser of the
> conflict's thread will never be executed (i.e. job.cpp:418
> JobThread::Entry), which is responsible for deleting the job owned by the
> thread, meaning that the connection is never returned to the pool. By
> moving the delete of the job into the destructor, we can assure that the
> connection is tidied up in both cases as the thread is deleted in the error
> case explicitly in pgAgent.cpp:185.
>
> The only possibly unintended difference that I can see with doing this is
> that the log "Completed job: %s" is now output when before it wasn't,
> however I think this new behaviour is actually correct as the job object is
> completed at that time.
>
> Thanks,
> Rob
>
> <https://codeweavers.net>
>
>
> <http://us15.campaign-archive1.com/?u=fcb361cfa194cf70551bc5169&id=f556b0bf09>
> Codeweavers
> October
> Newsletter
> <http://us15.campaign-archive1.com/?u=fcb361cfa194cf70551bc5169&id=f556b0bf09>
> *l *Auto Trader extends partnership with Codeweavers
> <https://codeweavers.net/company-blog/auto-trader-extends-partnership-with-codeweavers-to-power-finance-on-auto-trader-websites>
>
>
> <https://codeweavers.net/automotive-vision-conference-agenda>
>
> *What are Codeweavers doing to gear up for GDPR?
> <https://codeweavers.net/company-blog/what-are-codeweavers-doing-to-gear-up-for-gdpr>*
>
>
>
> *Phone:* 0800 021 0888 * Email: *contactus(at)codeweavers(dot)net
> *Codeweavers Ltd* | Barn 4 | Dunston Business Village | Dunston | ST18 9AB
> Registered in England and Wales No. 04092394 | VAT registration no. 974
> 9705 63
>
> <https://www.linkedin.com/company/codeweavers-limited>
> <https://vimeo.com/codeweaversltd> [image:
> https://plus.google.com/b/105942302039373248738/+CodeweaversNet]
> <https://plus.google.com/b/105942302039373248738/+CodeweaversNet> [image:
> https://twitter.com/CodeweaversTeam] <https://twitter.com/CodeweaversTeam>
>

Attachment Content-Type Size
connection_pool_v2.patch application/octet-stream 241 bytes

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Ashesh Vashi 2017-10-23 05:21:25 Re: pgadmin4 l10n issues
Previous Message Rob Emery 2017-10-21 15:06:24 [pgAgent][Patch] Fixing connection pool leak