Bug 18716 - Сегфолт при подключении к серверу
Summary: Сегфолт при подключении к серверу
Status: CLOSED FIXED
Alias: None
Product: Branch 5.0
Classification: Distributions
Component: qmpdclient (show other bugs)
Version: unspecified
Hardware: all Linux
: P2 critical
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-5.0@altlinux.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-02-01 12:32 MSK by Alexey Petrakov
Modified: 2009-02-06 05:32 MSK (History)
0 users

See Also:


Attachments
strace result (503.76 KB, application/octet-stream)
2009-02-01 18:16 MSK, Alexey Petrakov
no flags Details
strace 2 (175.02 KB, application/octet-stream)
2009-02-02 10:04 MSK, Alexey Petrakov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Alexey Petrakov 2009-02-01 12:32:59 MSK
Запуск, MPD->Connect to...->My server, сегфолт. Всё.
Comment 1 Andrey Rahmatullin 2009-02-01 12:35:59 MSK
УМВР. Какие-то дополнительные данные, включая бэктрейс, будут?
Comment 2 Alexey Petrakov 2009-02-01 18:16:10 MSK
Created attachment 3296 [details]
strace result
Comment 3 Alexey Petrakov 2009-02-01 18:18:07 MSK
(В ответ на комментарий №1)
> УМВР. Какие-то дополнительные данные, включая бэктрейс, будут?

См. аттач. Ещё какие-нибудь дополнительные данные нужны?
Comment 4 Andrey Rahmatullin 2009-02-01 18:20:27 MSK
Подтверждается 100%?
Сервер не на локалхосте (судя по финальному connect("192.168.1.1")?) Пересобрать пакет с дебагом и снять бэктрейс есть возможность?
Comment 5 Andrey Rahmatullin 2009-02-01 18:20:51 MSK
Ой, это вообще ресолвер.
Comment 6 Alexey Petrakov 2009-02-01 18:31:50 MSK
(В ответ на комментарий №4)
> Подтверждается 100%?

Да.

> Сервер не на локалхосте (судя по финальному connect("192.168.1.1")?)

Сервер не на локалхосте, на соседней машине в сети. 192.168.1.1 - это DNS. Хотя, сервер у меня адресом прописан.

> Пересобрать пакет с дебагом и снять бэктрейс есть возможность?

Нет, к с сожалению.

Я отловил причину. Сегфолтился, потому что я опечатался в адресе сервера, набрав 192.1681.2. вместо 192.168.1.2 После исправления заработало.
Но, как бэ, от этого оно багом быть не перестаёт.
Comment 7 Andrey Rahmatullin 2009-02-01 19:26:52 MSK
У меня не падает, к сожалению.
Можете попробовать дебаг-версию: http://wrar.name/temp/qmpdclient-1.0.9-alt1.i586.rpm(2 метра, подписано моим ключом).
Comment 8 Alexey Petrakov 2009-02-02 07:41:21 MSK
(В ответ на комментарий №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
Comment 9 Andrey Rahmatullin 2009-02-02 08:36:50 MSK
http://wrar.name/temp/qmpdclient-1.0.9-alt1.i586.rpm конечно же
Comment 10 Alexey Petrakov 2009-02-02 10:04:02 MSK
Created attachment 3298 [details]
strace 2
Comment 11 Alexey Petrakov 2009-02-02 10:05:17 MSK
Попробовал. Результат тот же. Вывод strace приложил.
Comment 12 Andrey Rahmatullin 2009-02-02 10:43:09 MSK
strace неинтересно, интересно gdb
Comment 13 Alexey Petrakov 2009-02-02 11:45:03 MSK
(В ответ на комментарий №12)
> strace неинтересно, интересно gdb

Опишите, пожалуйста, процедуру в подробностях. Я не силён в отладке сишных программ.
Comment 14 Andrey Rahmatullin 2009-02-02 12:45:38 MSK
Запустить gdb qmpdlient, сказать r, как упадёт - сказать bt
Comment 15 Alexey Petrakov 2009-02-02 16:11:13 MSK
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
Comment 16 Andrey Rahmatullin 2009-02-02 21:40:05 MSK
А хрен его знает :(
По бэктрейсу не сильно понятно, подтвердить не могу (спокойно выдаёт "не могу подключиться" на всякие "192.1681.2" и "192.1681.2."). Что ресолвер выдаёт вообще на этот запрос?
Comment 17 Andrey Rahmatullin 2009-02-02 21:49:50 MSK
Disregard that, поймал.
Comment 18 Andrey Rahmatullin 2009-02-02 23:17:18 MSK
Дваждыпочинил. Проверьте ещё раз http://wrar.name/temp/qmpdclient-1.0.9-alt1.i586.rpm
Comment 19 Alexey Petrakov 2009-02-03 09:40:28 MSK
(В ответ на комментарий №18)
> Дваждыпочинил. Проверьте ещё раз

Работает. Честно выдаёт Could not connect to server... и не падает. Если ввести адрес правильно - нормално коннектится. Спасибо большое. Расскажите, что было-то.

А можно теперь поправленное в бранчи отправить?

И, файлы с русскими буквами в именах всё равно не играет, но на это я уже завёл баг.
Comment 20 Andrey Rahmatullin 2009-02-03 10:50:05 MSK
(В ответ на комментарий №19)
> Расскажите, что было-то.
:)
1. До обработки ошибок делался ещё один коннект к серверу (а если ресолвинг не прошёл, там мусор вместо адреса).
2. При реконнекте не проверялось, не пуста ли структура с адресом сервера, оставшаяся от прошлого раза (а её никто не заполнял).

> А можно теперь поправленное в бранчи отправить?
В 5.0 да, ибо копированием из сизифа, в 4.1 не знаю, ибо надо пересобирать и теоретически ещё и тестировать.

> И, файлы с русскими буквами в именах всё равно не играет, но на это я уже завёл
> баг.
Угу, посмотрим.
Comment 21 Andrey Rahmatullin 2009-02-04 10:29:24 MSK
Залил в сизиф и 5.0.
Comment 22 Alexey Petrakov 2009-02-06 05:32:18 MSK
Угу, вижу.