It's very hard to think of a case where a SIGSEGV in a C program could 
continue safely.  It typically means pointer access out of bounds, which in 
turn is usually because some data structure has become corrupted.

My question is, where is this SEGV coming from?  Is this a bug in the 
Oracle libraries?  If so, you most likely want to find a way to work around 
that bug, to prevent the SEGV occurring in the first place.  Does this SEGV 
occur when running a native C program which calls the ORA libraries in the 
same way?  If not, why not?  Could it be a threading issue, perhaps?

Failing that, the only safe solution I can think of is to fork a child, run 
the Oracle client in the child, and communicate with the child over a 
socket (e.g. with gRPC). This would have the nice side-effect that the 
parent could be built without CGO; and if the child crashes, you can just 
fork and exec another one.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/abd759fe-90ec-47c6-a79b-12f82d9854e5o%40googlegroups.com.

Reply via email to