Bug 16349 - gajim не может резолвить имя сервера при смене сетевых настроек
Summary: gajim не может резолвить имя сервера при смене сетевых настроек
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: gajim (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Ilya Mashkin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on: 16380
Blocks:
  Show dependency tree
 
Reported: 2008-07-14 12:25 MSD by Sergey Alembekov
Modified: 2008-09-17 17:35 MSD (History)
1 user (show)

See Also:


Attachments
Temporary hack to call res_init(3) before a connection in gajim. (554 bytes, patch)
2008-07-17 22:19 MSD, avm
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Alembekov 2008-07-14 12:25:03 MSD
-запускаем программу
-подключаемся к jabber-серверу
-ставим статус "отключен"
-меняем сетевые настройки, в том числе и адрес ДНС-сервера(например, с ноутбуком из офиса приехали домой)
-ставим статус "доступен"... gajim пытается подключиться, потом выдаёт сообщение "не найден узел <имя ждаббер-сервера>. В tcpdump видно, что gajim пытается подключиться к DNS-серверу по старому адресу, т.е. адрес DNS запоминается во время старта и далее не обновляется до следующего рестарта.
Comment 1 avm 2008-07-14 15:10:20 MSD
Принято. Как раз недавно на эту тему исправляли pidgin; он теперь просто перечитывает resolv.conf перед каждым коннектом. Ну и тут сделаем что-нибудь похожее.
Comment 2 avm 2008-07-16 16:36:29 MSD
Современный gajim, когда ему нужно что-нибудь отрезолвить, запускает nslookup. Так что бага странная. Точно gajim лезет в старый DNS?
Comment 3 Sergey Alembekov 2008-07-16 20:29:16 MSD
rt@banzay-book ~ $ rpm -q gajim
gajim-0.11.4-alt1.1.qa1

rt@banzay-book ~ $ cat /etc/resolv.conf
nameserver 212.119.96.33
search home
nameserver 212.119.97.5


Вот лог tcpdump. первая группа строк - пинги к www.ru, потом gajim пытается соединиться с jabber и обращается к DNS-серверу(192.168.13.1), который остался у него от предыдущего сетевого профиля, а после нормально подключаемся к imap-серверу при помощи правильного DNS. 

rt@banzay-book ~ $ sudo tcpdump -i ppp2 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ppp2, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
20:06:08.563109 IP 92.36.22.103.35727 > 212.119.96.33.domain: 10768+ A? www.ru. (24)
20:06:09.378323 IP 212.119.96.33.domain > 92.36.22.103.35727: 10768 1/2/3 A 194.87.0.50 (140)
20:06:09.378922 IP 92.36.22.103 > 194.87.0.50: ICMP echo request, id 5947, seq 1, length 64
20:06:09.516987 IP 194.87.0.50 > 92.36.22.103: ICMP echo reply, id 5947, seq 1, length 64
20:06:09.518433 IP 92.36.22.103.54622 > 212.119.96.33.domain: 16250+ PTR? 50.0.87.194.in-addr.arpa. (42)
20:06:09.649658 IP 212.119.96.33.domain > 92.36.22.103.54622: 16250 1/3/4 (200)
20:06:10.379060 IP 92.36.22.103 > 194.87.0.50: ICMP echo request, id 5947, seq 2, length 64
20:06:10.515339 IP 194.87.0.50 > 92.36.22.103: ICMP echo reply, id 5947, seq 2, length 64



20:06:19.607196 IP 92.36.22.103.34511 > 192.168.13.1.domain: 49851+ AAAA? jabber.ru. (27)
20:06:24.607744 IP 92.36.22.103.34511 > 192.168.13.1.domain: 49851+ AAAA? jabber.ru. (27)
20:06:29.607948 IP 92.36.22.103.41000 > 192.168.13.1.domain: 42099+ AAAA? jabber.ru.home. (32)
20:06:34.608054 IP 92.36.22.103.41000 > 192.168.13.1.domain: 42099+ AAAA? jabber.ru.home. (32)
20:06:39.608362 IP 92.36.22.103.45563 > 192.168.13.1.domain: 1972+ A? jabber.ru. (27)
20:06:44.608569 IP 92.36.22.103.45563 > 192.168.13.1.domain: 1972+ A? jabber.ru. (27)
20:06:49.608850 IP 92.36.22.103.56304 > 192.168.13.1.domain: 42905+ A? jabber.ru.home. (32)
20:06:54.609031 IP 92.36.22.103.56304 > 192.168.13.1.domain: 42905+ A? jabber.ru.home. (32)


20:07:23.798084 IP 92.36.22.103.49610 > 212.119.96.33.domain: 58860+ AAAA? imap.aspirinka.net. (36)
20:07:24.874517 IP 212.119.96.33.domain > 92.36.22.103.49610: 58860 0/1/0 (78)
20:07:24.875406 IP 92.36.22.103.56004 > 212.119.96.33.domain: 10807+ AAAA? imap.aspirinka.net.home. (41)
20:07:25.024086 IP 212.119.96.33.domain > 92.36.22.103.56004: 10807 NXDomain 0/1/0 (116)
20:07:25.024425 IP 92.36.22.103.36316 > 212.119.96.33.domain: 5954+ A? imap.aspirinka.net. (36)
20:07:25.206561 IP 212.119.96.33.domain > 92.36.22.103.36316: 5954 1/2/0 A 212.158.162.151 (87)

Если перезапустить gajim, то соединение пройдёт успешно. 
Порылся в ~/gajim/config, но не нашёл настройки, из-за которой эта проблема может быть моей локальной
Comment 4 avm 2008-07-17 22:17:57 MSD
Вот это репорт. Вот это я называю багрепорт. После такого стыдно немедленно не починить багу.

Значит, так. Эту багу на gajim вешали давно:
http://trac.gajim.org/ticket/2859
Её закрыли с той мотивацией, что на самом деле корень зла в glibc, который не перечитывает resolv.conf. Трудно не согласиться.

В связи с этим я пошёл вешать FR на glibc с просьбой приложить дебиановский патч local-dynamic-resolvconf.diff.

Пока суд да дело (пока не вышел новый релиз glibc), gajim можно похакать. Хак сейчас приложу.
Comment 5 avm 2008-07-17 22:19:08 MSD
Created attachment 2707 [details]
Temporary hack to call res_init(3) before a connection in gajim.
Comment 6 Sergey Alembekov 2008-07-18 13:03:17 MSD
хак работает, спасибо! (и ведь вроде лазил по гаджимову траку, но не нашел этой ошибки. спасибо, ещё раз)
Comment 7 avm 2008-09-17 10:33:29 MSD
В Сизифе новый релиз glibc, который должен устранить эту проблему.
Comment 8 Mikhail Gusarov 2008-09-17 11:25:53 MSD
Раз не работало, а теперь работает - значит, fixed. Хоть починка и не в gajim.
Comment 9 avm 2008-09-17 17:34:52 MSD
(In reply to comment #8)
> Раз не работало, а теперь работает - значит, fixed.

Почему это важно? (На какие события в будущем может в принципе повлиять такая замена resolution?)
Comment 10 Mikhail Gusarov 2008-09-17 17:35:48 MSD
На разгребание старых багов, скажем.