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-pg...@codeweavers.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: *contac...@codeweavers.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> >
connection_pool_v2.patch
Description: Binary data