съедание проца
Igor Sysoev
is at rambler-co.ru
Thu Jan 3 21:24:23 MSK 2008
On Thu, Jan 03, 2008 at 10:47:35PM +0500, Nick S. Knutov wrote:
> Hello Igor,
>
> Ок, обновился, с ./configure --with-debug
> /usr/local/nginx/nginx -v
> nginx version: nginx/0.5.34
>
> http://supervds.ru/nginx-error-debug01.txt.gz
> 2.5 метра, в несжатом виде - около 500.
Похоже на ошибку в epoll:
2008/01/03 20:38:47 [debug] 25623#0: epoll: fd:11 ev:0001 d:B7550008
...
2008/01/03 20:38:47 [debug] 25623#0: close listening 0.0.0.0:80 #11
...
2008/01/03 20:38:47 [debug] 25623#0: epoll: stale event B7550008
По идее, после закрытия сокета ядро не должно возвращать события.
Прилагаемый патч должен помочь.
На каких ядрах это стало появляться ?
--
Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
Index: src/core/ngx_connection.c
===================================================================
--- src/core/ngx_connection.c (revision 1138)
+++ src/core/ngx_connection.c (working copy)
@@ -537,13 +537,14 @@
c = ls[i].connection;
- if (ngx_event_flags & NGX_USE_RTSIG_EVENT) {
- if (c->read->active) {
+ if (c->read->active) {
+ if (ngx_event_flags & NGX_USE_RTSIG_EVENT) {
ngx_del_conn(c, NGX_CLOSE_EVENT);
- }
- } else {
- if (c->read->active) {
+ } else if (ngx_event_flags & NGX_USE_EPOLL_EVENT) {
+ ngx_del_event(c->read, NGX_READ_EVENT, 0);
+
+ } else {
ngx_del_event(c->read, NGX_READ_EVENT, NGX_CLOSE_EVENT);
}
}
More information about the nginx-ru
mailing list