Bug 18053 - Bluetooth работает не устойчиво и часто падает.
Summary: Bluetooth работает не устойчиво и часто падает.
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: bluez-utils (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Alexey Shabalin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-01 00:45 MSK by Roman Savochenko
Modified: 2009-03-09 11:13 MSK (History)
6 users (show)

See Also:


Attachments
Протокол hcid (1.05 KB, application/x-gzip)
2008-12-01 23:18 MSK, Roman Savochenko
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Roman Savochenko 2008-12-01 00:45:09 MSK
Железо:
Acer Aspire One 110
usb 1-2: new full speed USB device using uhci_hcd and address 4
usb 1-2: configuration #1 chosen from 1 choice
usb 1-2: New USB device found, idVendor=0c10, idProduct=0000
usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 1-2: Product: BCM92045B3 ROM
usb 1-2: Manufacturer: Broadcom Corp
Софт:
[root@mroman ~]# rpm -qa | grep blue
kdebluetooth-1.0-alt15.beta8
bluez-utils-3.29-alt1
libbluez-3.36-alt1
libkbluetooth-1.0-alt15.beta8

Софт пересобрал из Сизифа под Branch4.1 поскольку исходный работал очень неустойчиво. Однако оказалось, что новые версии не лучше.

Проблема в работе заключается в частом падении (Segfaulted) kbluetooth, визуально и демона bluetooth. 

Если настроить GPRS и ничего не трогать, то конект не теряется. Однако если отключить соединение и, скажем, запустить монитор Bluetooth, всё падает и устройство /dev/rfcomm0 пропадает.

Замечено, также, падение всего в момент запроса на передачу файла из мобильного телефонна.

И ещё масса слабо формализуемых ситуаций.
Comment 1 Andrey Rahmatullin 2008-12-01 11:02:30 MSK
И как это предлагается чинить без единого bt?
Comment 2 Roman Savochenko 2008-12-01 19:54:57 MSK
Что имеется в виду под bt?

Кстати, нестабильно работает на ядре 2.6.27 (kernel-image-std-ng-2.6.27-alt4).
На ядре 2.6.25 (kernel-image-std-def-2.6.25-alt8.M41.3) работает стабильно. Все операции проделал ни разу не упало.
Comment 3 Andrey Rahmatullin 2008-12-01 19:57:37 MSK
backtrace
Comment 4 Roman Savochenko 2008-12-01 20:00:22 MSK
Попробую сделать.
На 2.6.25 упало после выдёргивания Bluetooth адаптера и в момент завершения работы.
Comment 5 Roman Savochenko 2008-12-01 23:18:14 MSK
Created attachment 3109 [details]
Протокол hcid

На 2.6.27 обнаружилось, что демон hcid устойчиво, но корректно завершается после любой операции с ним. После чего последующие операции выполнить уже не возможно. Пока не перезапустишь bluetooth (service bluetooth restart). И опять до одной операции.
Режим отладки для hcid включил и лог его работы вкладываю.
Comment 6 Roman Savochenko 2008-12-01 23:20:19 MSK
Лог получен от операции вызова KBlueMon.
Comment 7 Andrey Rahmatullin 2008-12-01 23:26:05 MSK
(In reply to comment #5)
> Created an attachment (id=3109) [details]
> Протокол hcid
> 
> На 2.6.27 обнаружилось, что демон hcid устойчиво, но корректно завершается после
> любой операции с ним.
Ядро при этом теряет девайс?
Comment 8 Roman Savochenko 2008-12-03 11:23:03 MSK
Думаю не теряет. Раз service bluetooth restart помагает.
Поставил ядро kernel-image-std-def-2.6.27-alt3.i586.rpm из Сизифа - теже яйца.
Однако оказалось, что bluez-utils не обновилось, по причине зависимости на udev версии большей, чем доступна в Branch4.1.

Взял с Сизифа udev-134-alt1.src.rpm и попробовал пересобрать под Branch4.1, а он не собирается с ошибкой:
Making all in cdrom_id
make[3]: Entering directory `/home/roman/RPM/BUILD/udev-134/build-klibc/extras/cdrom_id'
klcc -DHAVE_CONFIG_H -I. -I../..  -include ../../config.h -DSYSCONFDIR=\""/etc"\" -DUDEV_PREFIX=\"""\" -D_LIBUDEV_COMPILATION   -pipe -Wall -O2 -march=i586 -mtune=i686 -c cdrom_id.c
cdrom_id.c: In function 'scsi_cmd_set':
cdrom_id.c:142: error: 'SG_FLAG_LUN_INHIBIT' undeclared (first use in this function)
cdrom_id.c:142: error: (Each undeclared identifier is reported only once
cdrom_id.c:142: error: for each function it appears in.)
Comment 9 Andrey Rahmatullin 2008-12-03 11:35:29 MSK
(In reply to comment #8)
> Думаю не теряет. Раз service bluetooth restart помагает.
Я не знаю, кто ещё кроме правила udev на удаление устройства может вызывать service bluetooth stop.

> Поставил ядро kernel-image-std-def-2.6.27-alt3.i586.rpm из Сизифа - теже яйца.
> Однако оказалось, что bluez-utils не обновилось, по причине зависимости на udev
> версии большей, чем доступна в Branch4.1.
Там зависимость из-за перенесённых оттуда /etc/udev/rules.d/80-bluetooth.rules
В вашем udev этот файл есть, поэтому пакет не установится. Могу предложить пересобрать bluez-utils без упаковки этого файла и с убранной зависимостью.

> Взял с Сизифа udev-134-alt1.src.rpm
Не надо.
Comment 10 Roman Savochenko 2008-12-03 11:58:36 MSK
> > Однако оказалось, что bluez-utils не обновилось, по причине зависимости на udev
> > версии большей, чем доступна в Branch4.1.
> Там зависимость из-за перенесённых оттуда /etc/udev/rules.d/80-bluetooth.rules
> В вашем udev этот файл есть, поэтому пакет не установится. Могу предложить
> пересобрать bluez-utils без упаковки этого файла и с убранной зависимостью.
Поправьте пожалуйста spec. У меня с ходу не получилось:
error: Installed (but unpackaged) file(s) found:
    /etc/udev/rules.d/bluetooth.rules
    /lib/udev/bluetooth_serial
Comment 11 Andrey Rahmatullin 2008-12-03 12:56:07 MSK
Убрать unpackaged_files_terminate_build
Comment 12 Roman Savochenko 2008-12-03 14:57:33 MSK
Собрал и поставил.
Отпадать демон hcid перестал.
И падения kbluetooth начали вылазить более чётко.
Первый backtrace после пересылки файла на телефон:
(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1227888352 (LWP 8696)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#5  0xb7845eb6 in raise () from /lib/libc.so.6
#6  0xb7847661 in abort () from /lib/libc.so.6
#7  0xb704c055 in QWidget::setUpdatesEnabled () from /usr/lib/libdbus-1.so.3
#8  0xb7055548 in QWidget::setUpdatesEnabled () from /usr/lib/libdbus-1.so.3
#9  0xb787239c in fflush () from /lib/libc.so.6
#10 0xb7047a96 in QWidget::setUpdatesEnabled () from /usr/lib/libdbus-1.so.3
#11 0xb79435c0 in QWidget::setUpdatesEnabled () from /lib/libc.so.6
#12 0x00000001 in ?? ()
#13 0xb7054c80 in QWidget::setUpdatesEnabled () from /usr/lib/libdbus-1.so.3
#14 0xbf850104 in ?? ()
#15 0x00000000 in ?? ()
Comment 13 Roman Savochenko 2008-12-03 15:01:05 MSK
А этот при запросе передачи файла из телефона:
(no debugging symbols found)
Using host libthread_db library "/lib/libthread_db.so.1".
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread -1227343584 (LWP 13666)]
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[KCrash handler]
#5  0xb78caeb6 in raise () from /lib/libc.so.6
#6  0xb78cc661 in abort () from /lib/libc.so.6
#7  0xb70d1055 in QWidget::setUpdatesEnabled () from /usr/lib/libdbus-1.so.3
#8  0xb70da548 in QWidget::setUpdatesEnabled () from /usr/lib/libdbus-1.so.3
#9  0xb78f739c in fflush () from /lib/libc.so.6
#10 0xb70cca96 in QWidget::setUpdatesEnabled () from /usr/lib/libdbus-1.so.3
#11 0xb79c85c0 in QWidget::setUpdatesEnabled () from /lib/libc.so.6
#12 0x00000001 in ?? ()
#13 0xb70d9c80 in QWidget::setUpdatesEnabled () from /usr/lib/libdbus-1.so.3
#14 0xbfad3f54 in ?? ()
#15 0x00000000 in ?? ()
Comment 14 Andrey Rahmatullin 2008-12-03 15:25:42 MSK
Это не бэктрейсы, а фигня. Мне такое уже вешали к тому же.
Пересобирайте kbt с дебагом.
Comment 15 Roman Savochenko 2008-12-03 18:46:26 MSK
А что не фигня?
Опция компиляции -g изменяет карту памяти процесса. Из-за чего ошибки обращения к невыделенной области памяти могут не вызывать падения.
Собрал с debug. Падать перестала, но и не работает.
В случае с приёмом запроса от телефона на приём файла вываливает диалог:
"Ошибка соединения с SDP сервером."
И зависает.
Comment 16 Andrey Rahmatullin 2008-12-03 20:40:02 MSK
(In reply to comment #15)
> А что не фигня?
Бэктрейсы, в которых что-нибудь видно.

> Опция компиляции -g изменяет карту памяти процесса. Из-за чего ошибки
> обращения к невыделенной области памяти могут не вызывать падения.
Т.е. вы приницпиально против сборок с дебагом?

> Собрал с debug. Падать перестала
Ничем не могу помочь.
Comment 17 Roman Savochenko 2008-12-03 23:20:58 MSK
Как отключить стрипинг бинарников при упаковке пакета?
Comment 18 Andrey Rahmatullin 2008-12-04 10:45:48 MSK
--enable debug
Comment 19 Roman Savochenko 2008-12-04 14:21:06 MSK
(In reply to comment #18)
> --enable debug
Где? 

Comment 20 Andrey Rahmatullin 2008-12-04 14:41:33 MSK
rpm -ba --enable debug или как вы там собираете
Comment 21 Roman Savochenko 2008-12-04 18:21:57 MSK
Пересобрал. Размер бинарника удвоился.
Но это не помогло. Отчёт в код kbluetooth не зацепляет:
Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread -1228044000 (LWP 9898)]
[KCrash handler]
#5  0xb781feb6 in raise () from /lib/libc.so.6
#6  0xb7821661 in abort () from /lib/libc.so.6
#7  0xb7026055 in QWidget::setUpdatesEnabled () from /usr/lib/libdbus-1.so.3
#8  0xb702f548 in QWidget::setUpdatesEnabled () from /usr/lib/libdbus-1.so.3
#9  0xb784c39c in fflush () from /lib/libc.so.6
#10 0xb7021a96 in QWidget::setUpdatesEnabled () from /usr/lib/libdbus-1.so.3
#11 0xb791d5c0 in QWidget::setUpdatesEnabled () from /lib/libc.so.6
#12 0x00000001 in ?? ()
#13 0xb702ec80 in QWidget::setUpdatesEnabled () from /usr/lib/libdbus-1.so.3
#14 0xbff48fb4 in ?? ()
#15 0x00000000 in ?? ()

Толи проблема в dbus!?
Comment 22 Roman Savochenko 2009-02-25 11:55:13 MSK
На Branch 5.0 всё работает нормально. Думаю и в Сизифе тоже.
Закрываем.