Summary: | curl: IPv6 на ядре без IPv6 | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Kirill A. Shutemov <kas> |
Component: | curl | Assignee: | Anton Farygin <rider> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | normal | ||
Priority: | P3 | CC: | glebfm, ldv, led, rider, wrar |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Kirill A. Shutemov
2010-05-16 04:01:14 MSD
(В ответ на комментарий №0) > $ curl http://ftp.arm.linux.org.uk/ > curl: (7) couldn't connect to host а так: curl --ip4 http://ftp.arm.linux.org.uk/ ? так: curl --ipv4 http://ftp.arm.linux.org.uk/ работает. Слегка в тему, из недавно прочитанного: IPv6 is not enabled by default for any network activity in ejabberd. This is because with the current state of ejabberd code it's impossible to fall back to IPv4 if IPv6 is unavailable, and hence enabling IPv6 by default would immediately break things for users with IPv6 disabled (see http://bugs.debian.org/503313 for more details). Так и тут, видимо. Но решение, связанное с полным отключением v6, немедленно получит #23202 blocker. Проверка на работоспособность IPv6 тривиальна. Не вижу проблемы. Предложите его апстриму. Поковырялся немного в curl. Похоже проблема, уходит корнями в c-ares. Он некорректно обрабатывает AF_UNSPEC. Он останавливается, если нашёл хотя бы одну AAAA запись, хотя, по идее, должен продолжать смотреть и на A записи. Если собрать curl без поддержки c-ares, то всё работает как следует. (В ответ на комментарий №6) > Поковырялся немного в curl. Похоже проблема, уходит корнями в c-ares. Он > некорректно обрабатывает AF_UNSPEC. Он останавливается, если нашёл хотя бы одну > AAAA запись, хотя, по идее, должен продолжать смотреть и на A записи. Да, совершенно верно: ошибка в c-ares. Однако, к сожалению, это не вопрос написания небольшого патча, который малой кровью пофиксит баг в c-ares. Вот ссылка на анализ кода c-ares: https://bugzilla.redhat.com/show_bug.cgi?id=548396#c1 Вывод: "I believe the API would have to change to support mixed protocols." > Если собрать curl без поддержки c-ares, то всё работает как следует. Нужно собрать curl с опцией --enable-threaded-resolver. Это решит данную проблему. Так уже сделано в сборке Федоры. В связи с этим перевешваю на curl. fixed (curl-7.21.1-alt2) (In reply to comment #8) > fixed (curl-7.21.1-alt2) $ rpmquery -R libcurl-7.21.1-alt2 |grep cares libcares >= 1.7.3-alt1 зависимость поставлена ручками, уберётся при следующей сборке. (In reply to comment #10) > зависимость поставлена ручками, уберётся при следующей сборке. Не забудешь? уже запушил, так что не забуду. |