[Moscow.pm] AnyEven::HTTP перед и после fork с сокетами между процессами

Гришаев Анатолий 0body0 на rambler.ru
Ср Окт 16 06:41:44 PDT 2013


Я в AnyEvent::DNS глубоко не влазил, а твой случай у меня не подтверждается.
Может только PERL_ANYEVENT_MODEL=EV чуть медленнее отрабатывает чем 
PERL_ANYEVENT_MODEL=Perl, да и то в пределах полсекунды.
А на всякий случай высылаю версии модулей с которыми у меня работает, 
может поможет :)


Самое близкая к тебе конфигурация, которая работает у меня вот
FreeBSD 7.2-RELEASE-p4
Perl v5.10.1
EV 4.11
AnyEvent 7.04
AnyEvent::HTTP 2.15

А вот линукс
Linux  3.2.0-45-generic #70-Ubuntu SMP Wed May 29 20:11:31 UTC 2013 i686 
i686 i386 GNU/Linux
Perl v5.14.2
EV 4.03
AnyEvent 6.12
AnyEvent::HTTP 2.13

Есть еще FreeBSD 8, но там
EV 4.15
AnyEvent 6.12
AnyEvent::HTTP 2.13
Perl v5.16.3


16.10.2013 16:12, ksvs пишет:
>
> FreeBSD 9.2-RELEASE
> Perl v5.14.4
> EV 4.15
> AnyEvent 7.04
> AnyEvent::HTTP 2.15
>
>
> Мое одно письмо на модерацию попало.
> Вот оно.
>
> Да, работает (если исключить RESOLVER).
> А ведь была сначала мысль, что с dns у него проблема, но поститал, что раз
> сказал persistent => 0, то  AnyEvent::HTTP должен дальше и сказать тоже не
> сохранять открытые сокеты. :-)
>
> А почему в netstat не видно открытого сокета?
>
> Но как поремонтироваь это - не знаю.
> Перед fork делаю
>
>
> {
>      ...
>
>      my $rs = $AnyEvent::DNS::RESOLVER;
>      $$rs{rw4} = $$rs{rw6} = undef;
>      undef $AnyEvent::DNS::RESOLVER;
>
> }
>
> Отрегистрируем обработчики и уничтожаем resolver: сокеты закроются, так как my на них.
> Не помогает.
>
>
> On Wednesday, 16 October 2013, 14:47, Гришаев Анатолий <0body0 на rambler.ru> wrote:
>
> Либо тебе не повезло,
> либо у тебя забавные библиотеки:
>
> Проверил на FreeBSD +  Linux
> с  perl 5.10, 5.14, 5.16
> с EV и без него.
>
> Со строчкой работает,
> без строчки нет.
>


-- 
С уважением Анатолий.


Подробная информация о списке рассылки Moscow-pm