我已经通过AWS Elastic Beanstalk – Apache正在不断重启
我们的弹性beanstalk实例在error_log中报告以下消息
[Mon Jun 26 22:01:01.878892 2017] [mpm_prefork:notice] [pid 8595] AH00173: SIGHUP received. Attempting to restart *** Error in (wsgi:wsgi) ': double free or corruption (out): 0x00007f564cced560 ***
有时错误序列看起来更像这样:
[Tue Jun 27 00:01:01.215260 2017] [:error] [pid 6429] [remote XX.XXX.XX.195:29773] mod_wsgi (pid=6429): Exception occurred processing WSGI script '/opt/python/current/app/site/settings/wsgi/__init__.py'. [Tue Jun 27 00:01:01.215320 2017] [:error] [pid 6429] [remote XX.XXX.XX.195:29773] OSError: failed to write data [Tue Jun 27 00:01:01.222407 2017] [:error] [pid 6430] [remote XX.XXX.XX.60:53313] mod_wsgi (pid=6430): Exception occurred processing WSGI script '/opt/python/current/app/site/settings/wsgi/__init__.py'. [Tue Jun 27 00:01:01.222460 2017] [:error] [pid 6430] [remote XX.XXX.XX.60:53313] OSError: failed to write data [Tue Jun 27 00:01:04.554810 2017] [core:warn] [pid 8595] AH00045: child process 7614 still did not exit, sending a SIGTERM [Tue Jun 27 00:01:04.554850 2017] [core:warn] [pid 8595] AH00045: child process 7615 still did not exit, sending a SIGTERM [Tue Jun 27 00:01:05.555958 2017] [mpm_prefork:notice] [pid 8595] AH00173: SIGHUP received. Attempting to restart *** Error in (wsgi:wsgi) ': double free or corruption (out): 0x00007f5640cae900 *** *** Error in (wsgi:wsgi) ': double free or corruption (out): 0x00007f78649b7970 ***
这将持续下去,几乎每一个小时。 常见的信息是:
[Mon Jun 26 22:01:01.878892 2017] [mpm_prefork:notice] [pid 8595] AH00173: SIGHUP received. Attempting to restart
我查找mpm_prefork模块conf块…并没有一个,所以所有的默认值正在使用。
我查找了由elastic beanstalk执行的logrotation命令
/var/log/httpd/* { size 10M missingok notifempty rotate 5 sharedscripts compress dateext dateformat -%s create postrotate /sbin/service httpd reload > /dev/null 2>/dev/null || true endscript olddir /var/log/httpd/rotated }
很标准的东西。 我对reload理解是尝试一个平稳的重新启动…
我能够通过执行sudo apachectl -k restart来手动触发错误消息,尽pipe我无法find在日志轮转期间这将会运行的位置。
我们有下游服务,似乎抛出exception,在这个服务器挂断所有的连接点。
所以我的问题是,在logrotate期间,还有什么可能导致mpm_prefork中的SIGHUP ? 据我所知,这不应该在错误情况之外发生。
Apache / 2.4.18(Amazon)mod_wsgi / 3.5 Python / 3.4.3