On Thursday 17 January 2008, Christian Schlatter wrote:
Hi all,
Is it normal that a simple mysql error causes the worker process to die which in turn shuts down all other openser processes? If I remember correctly, this never happened to me with the 1.2 version.
The following log comes from an 1.3 installation:
[30812]: ERROR:mysql:db_mysql_submit_query: driver error: Can't lock file (errno: 4009) [30812]: ERROR:mysql:db_mysql_raw_query: error while submitting query [30812]: ERROR:usrloc:get_all_db_ucontacts: raw_query failed [30792]: INFO:core:handle_sigs: child process 30812 exited by a signal 11 [30792]: INFO:core:handle_sigs: core was not generated [30792]: INFO:core:handle_sigs: terminating due to SIGCHLD
Hi Christian,
no, this is not normal. But looking to the trace it seems that the problem is not located in the mysql driver, but in the calling functions from usrloc, as the error is propagated to this layer: submit_query -> raw_query -> get_all_.
The error is probably located in the function that called get_all_db_ucontact, perhaps a return value is not checked, and a NULL pointer is accessed because the necessary data is not returned.. If the SIG 11 were in the mysql driver, then the server would never get back to this point, or am i wrong?
It would be nice to have a backtrace from gdb.. :-)
Cheers,
Henning