Здравствуйте, помогите пожалуйста разобраться...
Написал модуль, но т.к. не до конца понимаю некоторые механизмы nginx, после смены версии nginx, зависимостей и системы всё разумеется перестало работать. Просьба в ngx_postgres не указывать, смотрел, там вроде несколько по другому. Подозреваю кусок кода которые был переписан со следующего блокирующего образца: do { status = PQconnectPoll(conn); } while(status != PGRES_POLLING_FAILED && status != PGRES_POLLING_OK); О том как было переписано: Комментарий об порядке вызовов https://github.com/AntonRiab/ngx_pgcopy/blob/master/ngx_http_pgcopy_module.c#L482 Лог вызовов функций https://github.com/AntonRiab/ngx_pgcopy/blob/master/reinit.log.xml Правильно ли я понимаю: upstream_init из reinit уходит в глубокую рекурсию, переполняет стек и поэтому вываливается в segfault? Куда корректно переместить повторные вызовы чтоб не уходить в рекурсию? Или есть способ по другому вызвать reinit? При том что таймер(pgcopy_PQconnectPoll_delay) почему то повторно не вызывается(даже после повторной установки). Есть подозрение, что будет работать если вынести повторые вызовы в r->upstream->read_event_handler/write_event_handle, но тогда роль access_handler выпадает. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,267216,267216#msg-267216 _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru