Skip site navigation (1) Skip section navigation (2)

Re: Issues with C++ exception handling in an FDW

From: Andres Freund <andres(at)anarazel(dot)de>
To: pgsql-hackers(at)postgresql(dot)org
Cc: Peter Geoghegan <peter(at)2ndquadrant(dot)com>, "Soules, Craig" <craig(dot)soules(at)hp(dot)com>
Subject: Re: Issues with C++ exception handling in an FDW
Date: 2012-01-31 19:01:05
Message-ID: 201201312001.06000.andres@anarazel.de (view raw or flat)
Thread:
Lists: pgsql-hackers
On Tuesday, January 31, 2012 07:52:52 PM Peter Geoghegan wrote:
> On 30 January 2012 23:04, Soules, Craig <craig(dot)soules(at)hp(dot)com> wrote:
> > When there are no errors everything works flawlessly, however, we noticed
> > that even throwing an exception in the C++ layer was causing an
> > immediate segmentation fault.  Even when encapsulated in a try { }
> > catch(...) { } block.
> > 
> > If anyone has seen anything like this, any pointers or suggestions would
> > be much appreciated.  I have followed all of the recommendations in the
> > PostgreSQL documentation, with no luck.  I am not overloading the
> > _init() functions in either shared library (another potential source of
> > errors I have read about).
> 
> I suggest that you generalise from the example of PLV8. The basic
> problem is that the effect of longjmp()ing over an area of the stack
> with a C++ non-POD type is undefined. I don't think you can even use
> structs, as they have implicit destructors in C++.
The PODness of a struct depends on its contents.

Andres

In response to

Responses

pgsql-hackers by date

Next:From: Dean RasheedDate: 2012-01-31 19:15:43
Subject: Re: Index-only scan performance regression
Previous:From: Robert HaasDate: 2012-01-31 18:56:09
Subject: Re: pgsql_fdw, FDW for PostgreSQL server

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group