Mojo. Первый критичный баг
Нашел в Mojo критичный баг, а именно – при запуске сервера как демон-префорк (Mojo::Server::Daemon::Prefork), рабочий процесс (чайлд) падает при работе с пайпами; при запуске сервера как демон или CGI такой проблемы нет.
Подробное описание и тест в рассылке (кстати, мне там сделали замечание, как писать об ошибке). Надеюсь, что я доступно объяснил и показал баг, чтобы автор Mojo и/или кто-нибудь другой нашли решение. Сам пока не нашел.Реальная задача, которая обнаружила это – отправка сообщения через sendmail в обработчике. Скорее всего ошибка в том, что возникает сигнал завершения потомка и он завершает работу воркера, а не пайпа.Временное решение проблемы. Есть два варианта:
Original post http://sharifulin.livejournal.com/51179.html
Подробное описание и тест в рассылке (кстати, мне там сделали замечание, как писать об ошибке). Надеюсь, что я доступно объяснил и показал баг, чтобы автор Mojo и/или кто-нибудь другой нашли решение. Сам пока не нашел.Реальная задача, которая обнаружила это – отправка сообщения через sendmail в обработчике. Скорее всего ошибка в том, что возникает сигнал завершения потомка и он завершает работу воркера, а не пайпа.Временное решение проблемы. Есть два варианта:
- отправлять сообщения не сразу, а накапливать в очередь и какой-нибудь внешний процесс должен заниматься отправкой сообщений (плюс такого решения в том, что некоторые сообщения можно отменять)
- урлы, в обработчиках которых возможна отправка сообщений, направлять не на демон-префорк, а на чистый демон (легко разруливается через nginx-конфиг)
Original post http://sharifulin.livejournal.com/51179.html