| Summary: | Сегфолт при подключении к серверу | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Branch 5.0 | Reporter: | Alexey Petrakov <lex> | ||||||
| Component: | qmpdclient | Assignee: | Nobody's working on this, feel free to take it <nobody> | ||||||
| Status: | CLOSED FIXED | QA Contact: | qa-5.0 <qa-5.0> | ||||||
| Severity: | critical | ||||||||
| Priority: | P2 | ||||||||
| Version: | unspecified | ||||||||
| Hardware: | all | ||||||||
| OS: | Linux | ||||||||
| Attachments: |
|
||||||||
|
Description
Alexey Petrakov
2009-02-01 12:32:59 MSK
УМВР. Какие-то дополнительные данные, включая бэктрейс, будут? Created attachment 3296 [details]
strace result
(В ответ на комментарий №1)
> УМВР. Какие-то дополнительные данные, включая бэктрейс, будут?
См. аттач. Ещё какие-нибудь дополнительные данные нужны?
Подтверждается 100%?
Сервер не на локалхосте (судя по финальному connect("192.168.1.1")?) Пересобрать пакет с дебагом и снять бэктрейс есть возможность?
Ой, это вообще ресолвер. (В ответ на комментарий №4) > Подтверждается 100%? Да. > Сервер не на локалхосте (судя по финальному connect("192.168.1.1")?) Сервер не на локалхосте, на соседней машине в сети. 192.168.1.1 - это DNS. Хотя, сервер у меня адресом прописан. > Пересобрать пакет с дебагом и снять бэктрейс есть возможность? Нет, к с сожалению. Я отловил причину. Сегфолтился, потому что я опечатался в адресе сервера, набрав 192.1681.2. вместо 192.168.1.2 После исправления заработало. Но, как бэ, от этого оно багом быть не перестаёт. У меня не падает, к сожалению. Можете попробовать дебаг-версию: http://wrar.name/temp/qmpdclient-1.0.9-alt1.i586.rpm(2 метра, подписано моим ключом). (В ответ на комментарий №7) > У меня не падает, к сожалению. > Можете попробовать дебаг-версию: > http://wrar.name/temp/qmpdclient-1.0.9-alt1.i586.rpm(2 метра, подписано моим > ключом). Not Found The requested URL /temp/qmpdclient-1.0.9-alt1.i586.rpm(2 was not found on this server. Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny2 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g Server at wrar.name Port 80 Created attachment 3298 [details]
strace 2
Попробовал. Результат тот же. Вывод strace приложил. strace неинтересно, интересно gdb (В ответ на комментарий №12) > strace неинтересно, интересно gdb Опишите, пожалуйста, процедуру в подробностях. Я не силён в отладке сишных программ. Запустить gdb qmpdlient, сказать r, как упадёт - сказать bt This GDB was configured as "i586-alt-linux"...
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) r
Starting program: /usr/bin/qmpdclient
[Thread debugging using libthread_db enabled]
[New process 12396]
[New Thread -1220561152 (LWP 12396)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1220561152 (LWP 12396)]
0x08082bc7 in mpd_getNextReturnElement (connection=0x82d1880) at src/libmpdclient.c:533
533 src/libmpdclient.c: No such file or directory.
in src/libmpdclient.c
Current language: auto; currently c
(gdb) bt
#0 0x08082bc7 in mpd_getNextReturnElement (connection=0x82d1880) at src/libmpdclient.c:533
#1 0x080830d0 in mpd_finishCommand (connection=0x82d1880) at src/libmpdclient.c:634
#2 0x080aa017 in MPDConnection::finishCommand (this=0x819c680) at src/mpdconnection.cpp:206
#3 0x080ab267 in MPDConnection::connectToMPD (this=0x819c680, server=@0x82c7490) at src/mpdconnection.cpp:79
#4 0x080e844f in QMPDClient (this=0xbfc3b9c8, argc=@0xbfc3ba10, argv=0xbfc3ba94) at src/qmpdclient.cpp:76
#5 0x080e8634 in main (argc=1, argv=0xbfc3ba94) at src/qmpdclient.cpp:226
А хрен его знает :( По бэктрейсу не сильно понятно, подтвердить не могу (спокойно выдаёт "не могу подключиться" на всякие "192.1681.2" и "192.1681.2."). Что ресолвер выдаёт вообще на этот запрос? Disregard that, поймал. Дваждыпочинил. Проверьте ещё раз http://wrar.name/temp/qmpdclient-1.0.9-alt1.i586.rpm (В ответ на комментарий №18) > Дваждыпочинил. Проверьте ещё раз Работает. Честно выдаёт Could not connect to server... и не падает. Если ввести адрес правильно - нормално коннектится. Спасибо большое. Расскажите, что было-то. А можно теперь поправленное в бранчи отправить? И, файлы с русскими буквами в именах всё равно не играет, но на это я уже завёл баг. (В ответ на комментарий №19) > Расскажите, что было-то. :) 1. До обработки ошибок делался ещё один коннект к серверу (а если ресолвинг не прошёл, там мусор вместо адреса). 2. При реконнекте не проверялось, не пуста ли структура с адресом сервера, оставшаяся от прошлого раза (а её никто не заполнял). > А можно теперь поправленное в бранчи отправить? В 5.0 да, ибо копированием из сизифа, в 4.1 не знаю, ибо надо пересобирать и теоретически ещё и тестировать. > И, файлы с русскими буквами в именах всё равно не играет, но на это я уже завёл > баг. Угу, посмотрим. Залил в сизиф и 5.0. Угу, вижу. |