Hello,
I was getting the same error message with AOLServer4.0.10 + nsoracle 2.7 under Mac OS X Tiger.
Since the issue is about the Oracle 10g client OCI, trapping the SIGCHLD signal, I modified both the oci_error_p
and tcl_error_p
in nsoracle.c (version 2.7 of the driver) to restore the signal, as following:
static int
oci_error_p (char *file, int line, char *fn,
Ns_DbHandle *dbh, char *ocifn, char *query,
oci_status_t oci_status)
{
/* for info we get from Oracle */
char *msgbuf;
/* what we will actually print out in the log */
char *buf;
/* exception code for Ns_DbSetException */
char exceptbuf[EXCEPTION_CODE_SIZE + 1];
ora_connection_t *connection = 0;
ub2 offset = 0;
sb4 errorcode = 0;
if (dbh)
connection = dbh->connection;
/* Restore SIGCHLD since Oracle10 client has trapped it **SG** */
signal(SIGCHLD, SIG_DFL);
My modification is in bold. I applied exactly the same one-liner to
tcl_error_p
as well.
You may also need to include the signal header file at the top of
nsoracle.c
/* Signal processing interface */
#include <sys/signal.h>
I hope this can be of some help to people experiencing the
"error waiting for process to exit: child process lost (is SIGCHLD ignored or trapped?)"
problem.