From: | Rob Emery <re-pgsql(at)codeweavers(dot)net> |
---|---|
To: | pgadmin-hackers(at)postgresql(dot)org |
Subject: | [pgAgent][Patch] Fixing connection pool leak |
Date: | 2017-10-21 15:06:24 |
Message-ID: | CAPCETptk-Z5+9=o5YWwt9MLmxnknLiHeeu292jZi2ZP3FEp4DA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgadmin-hackers |
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
<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-patch1.diff | text/plain | 418 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Ashesh Vashi | 2017-10-23 05:00:51 | Re: [pgAgent][Patch] Fixing connection pool leak |
Previous Message | Christoph Berg | 2017-10-19 18:29:36 | Re: pgAdmin 4 v1.6 Released! |