Opened 12 years ago
Closed 9 years ago
#265 closed defect (wontfix)
Nginx не запускается с ошибкой: the event "ngx_master_xxx" was not signaled for 5s
Reported by: | Максим Архипов | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | nginx-core | Version: | 1.2.x |
Keywords: | Cc: | ||
uname -a: | - | ||
nginx -V: | - |
Description
Баг - невозможность старта и соответственно использования всех версий Nginx на Windows машинах при большом количестве SSL доменов в файле конфигурации.
Проверены версии 1.2.x и 1.3.x, на других версиях думаю то же самое.
Проверены конфигурации SSL - дефолтная из документации, своя и еще куча всяких возможных. SSL key были использованы обычные без пароля, полностью корректные и рабочие (при малом количестве доменов). Конфигурация SSL не имеет значения, мощность Windows сервера так же не имеет значения - проблема везде идентична и упирается в таймаут. Важен сам факт использования SSL (ssl on) и количество доменов.
При использовании SSL и кол-ве доменов больше ~1300 сервер Nginx не запускается с ошибкой: the event "ngx_master_xxx" was not signaled for 5s
Без использования SSL в конфиге сервер стартует даже с 10 тыс. доменов и проблема не наблюдается.
Проблема заключается скорее всего тут (жёстко прописан таймаут): http://trac.nginx.org/nginx/browser/nginx/trunk/src/os/win32/ngx_process.c
Строка 87: rc = WaitForMultipleObjects(2, events, 0, 5000);
и потом строки
146 case WAIT_TIMEOUT:case WAIT_TIMEOUT: 147 ngx_log_error(NGX_LOG_ALERT, cycle->log, 0, 148 "the event \"%s\" was not signaled for 5s", 149 ngx_master_process_event_name);
Просьба исправить этот критический баг. Сервер просто невозможно использовать. Таймаут должен быть настраиваемым, либо сделайте его очень большим. Либо исправьте SSL, чтобы он не тормозил запуск.
P.S. О баге сообщаю впервые, прошу простить если написано сумбурно.
Change History (4)
follow-up: 2 comment:1 by , 12 years ago
Priority: | critical → minor |
---|
comment:2 by , 12 years ago
Replying to Valentin V. Bartenev:
Проверьте, что на ключах нет паролей.
В сообщении указано, что использовался ключ без пароля. По сути он был один для всех сайтов, сгенерирован стандартно через openssl. Потом так же пробовал и другие ключи, но ключи очевидно к проблеме не имеют отношения.
На 1200 ssl доменах еще работает, на 1300 и выше уже не запускается, причём в менеджере процессов видно, что Nginx нормально запускается набирая память а потом мастерпроцесс резко всё убивает по некому таймауту. Тупо не хватает времени, видимо SSL очень тормозит процессы запуска. Максим Дунин на форуме предложил патч, скоро его проверю и отпишусь.
comment:3 by , 12 years ago
Патч предложенный на форуме не помог. Помогла замена таймаута в ngx_process.c
rc = WaitForMultipleObjects(2, events, 0, 5000); // 5 секунд
на
rc = WaitForMultipleObjects(2, events, 0, 60000); // 1 минута
но это же не выход... почему так тормозит запуск SSL доменов не понятно. Без SSL тормозов нет, даже 10 тыс. доменов запускается за 5 сек.
comment:4 by , 9 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Проверьте, что на ключах нет паролей.