LWP::UserAgent -- игнорирование timeout()?

Все о программировании под *nix
Аватара пользователя
sanitar
Неотъемлемая часть форума
Сообщения: 1116
Зарегистрирован: 28 ноя 2002, 02:23
Откуда: Минск

LWP::UserAgent -- игнорирование timeout()?

Сообщение sanitar »

У кого есть успешный/неуспешный опыт задания timеout-а в сабже?

Преамбула:
Объект UserAgent выполняет post-запрос к удаленному серверу (запрос готовится макрокомандой POST из HTTP::Request, передается методу UserAgent->request).
Скрипт запускается на разных хостах. И, судя по всему эти хосты работают в окружении по разному настроенных файрволов/маршрутизаторов. По крайней мере, на половине хостов запрос отрабатывает за приемлемое время, с них же нормально выполняется 'telnet www.remotehost 443' .
На второй половине хостов зателнетиться к серверу не удается (никакого отклика, видимо траблы с маршрутизацией/файрволламі), ну и UserAgent запрос тоже уходит в коматоз. Выполнение скрипта застревает на строке UserAgent->request до тех пор пока не истечет 180 секунд....

Амбула:
UserAgent->timeout(5) по идее должен был бы приводить к автоматическому продолжению выполнения кода через 5 секунд вместо дефолтных 180, даже если респонса получить не удалось.
На практике на продолжительность коматоза установка timeout никак не влияет.

Что посоветуют те кто уже походил по этим граблям? Это баг LWP, ее фича или мои кривые руки?
Очень не хочется баловаться с различными комбинациями fork-sleep-kill для грубого обеспечения таймаута средствами на уровне скрипта.

perl: 5.8.0
LWP: 5.805

distr: RHEL 3 :bad:
I'll kill this code without a knife -- with only fork().

Аватара пользователя
sanitar
Неотъемлемая часть форума
Сообщения: 1116
Зарегистрирован: 28 ноя 2002, 02:23
Откуда: Минск

Сообщение sanitar »

Судя по найденному линку
http://www.issociate.de/board/post/1882 ... issue.html
cpan upgrade IO::Socket решает проблему :)

Сча опробуем :)
I'll kill this code without a knife -- with only fork().

Ответить