From: | "Soules, Craig" <craig(dot)soules(at)hp(dot)com> |
---|---|
To: | "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Issues with C++ exception handling in an FDW |
Date: | 2012-01-30 23:04:02 |
Message-ID: | 4D00A61DE9C15F4E9A8644D52DFF9A0537907F39@G4W3296.americas.hpqcorp.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2012-01-30 23:35:53 | Re: Group commit, revised |
Previous Message | Adrian Klaver | 2012-01-30 22:20:24 | Re: pg_dump -s dumps data?! |