Hello,

I've run into a very odd issue calling C++ code that uses exceptions from 
within our PostgreSQL FDW.  Specifically, we have broken our FDW into two 
components, a C layer that looks quite similar to the FDW for text files and a 
C++ layer that is called into by the C layer to interface with our storage file 
format.

We compile these two components into separate shared libraries, thus we have:

c-fdw.so
c++-fdw.so

and the c-fdw.so is compiled using -Wl,-rpath to allow it to find the 
c++-fdw.so at load time.

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).

Thanks!
Craig Soules

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to