I got some weird crash of nginx in the kernel logs. The problem is I
cant find out why or what happened. It happened I suppose over night.
This is from the kernel log:
nginx[31486]: segfault at c4 ip 080aacb5 sp bfd79b60 error 4 in
nginx[8048000+73000]
nginx[31484]: segfault at c4 ip 080aacb5 sp bfd79b60 error 4 in
nginx[8048000+73000]
nginx[1528]: segfault at c4 ip 080aacb5 sp bfd79bc0 error 4 in
nginx[8048000+73000]
nginx[1568]: segfault at c4 ip 080aacb5 sp bfd79bc0 error 4 in
nginx[8048000+73000]
and from error_log:
2010/03/21 09:42:35 [notice] 31483#0: signal 17 (SIGCHLD) received
2010/03/21 09:42:35 [alert] 31483#0: worker process 31486 exited on
signal 11
2010/03/21 09:42:35 [notice] 31483#0: start worker process 1528
2010/03/21 09:42:35 [notice] 31483#0: signal 29 (SIGIO) received
2010/03/21 09:43:03 [notice] 31483#0: signal 17 (SIGCHLD) received
2010/03/21 09:43:03 [alert] 31483#0: worker process 31484 exited on
signal 11
2010/03/21 09:43:03 [notice] 31483#0: start worker process 1568
2010/03/21 09:43:03 [notice] 31483#0: signal 29 (SIGIO) received
2010/03/21 09:43:09 [notice] 31483#0: signal 17 (SIGCHLD) received
2010/03/21 09:43:09 [alert] 31483#0: worker process 1528 exited on
signal 11
2010/03/21 09:43:09 [notice] 31483#0: start worker process 1582
2010/03/21 09:43:09 [notice] 31483#0: signal 29 (SIGIO) received
2010/03/21 09:45:09 [notice] 31483#0: signal 17 (SIGCHLD) received
2010/03/21 09:45:09 [alert] 31483#0: worker process 1568 exited on
signal 11
2010/03/21 09:45:09 [notice] 31483#0: start worker process 1757
2010/03/21 09:45:09 [notice] 31483#0: signal 29 (SIGIO) received
2010/03/21 12:00:13 [notice] 31483#0: signal 15 (SIGTERM) received,
exiting
On Mon, Mar 22, 2010 at 04:14:33PM +0100, Robert G. wrote:
And how am I suppose to do the backtrace, I mean I cant reproduce the
error or you just need a simple backtrace?
You have to configure your system to dump cores, and once you’ll
have coredump run
gdb /path/to/nginx /path/to/nginx.core
then in gdb:
bt
Depending on your OS procedure to enable core dumps is different,
but it may be simplified using nginx’s own global direcitives
worker_rlimit_core and working_directory, e.g.:
nginx must have write access to ‘/path/to/corefiles’ directory.
Note well: it’s good idea to make sure your nginx binary isn’t
stripped (e.g. via file(1) command).
If you are unable to reproduce segmentation fault and therefore
unable to obtain coredump - it’s still good idea to provide nginx
-V output and your config. There is a chance that segmentation
fault you’ve seen was already fixed or caused by known bad
configuration.
In nginx 0.8.34 I’m currently aware of at least 4 possible
segfaults: 2 caused by bugs (in fastcgi stderr handling and in
subrequest loop handling; patches are available) and 2 caused by
known bad configurations (error_page 400 redirected to named
location, “if” usage as outlined in IfIsEvil wiki page). Not even
talking about older versions.
Maxim D.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.