Thanks for the reply. On Tue, Apr 25, 2017 at 7:45 PM, Tom Lane <t...@sss.pgh.pa.us> wrote:
> Abbas Butt <abbas.b...@enterprisedb.com> writes: > > What is happening for me is that PG_RE_THROW takes me to PG_TRY in the > same > > function and then PG_TRY jumps to PG_CATCH where PG_RE_THROW again jumps > to > > PG_TRY in the same function resulting in an infinite loop. The query > > therefore never returns. It is supposed to throw the error and quit. > > Apparently PG_exception_stack isn't getting restored properly, but it's > sure hard to see why. I'm suspicious that you have something silly like > mismatched braces in the vicinity of the TRY/CATCH structure. > I rechecked, braces are matching. > > FWIW, doing things like disconnecting remote sessions might be better > handled in transaction-cleanup logic, anyway. I see that postgres_fdw is using a similar login in pgfdw_xact_callback. Let me try and use the same technique. > What covers you for that > if the query aborts while control is not within your PG_TRY block? > All the code that requires a connection to the foreign server is with in the PG_TRY block, it is therefore not required any where else to close connection before reporting any error. > > regards, tom lane > -- -- *Abbas* Architect Ph: 92.334.5100153 Skype ID: gabbasb www.enterprisedb.co <http://www.enterprisedb.com/>m <http://www.enterprisedb.com/> *Follow us on Twitter* @EnterpriseDB Visit EnterpriseDB for tutorials, webinars, whitepapers <http://www.enterprisedb.com/resources-community> and more <http://www.enterprisedb.com/resources-community>