Bug 27362

Summary: Падает в момент установки DSL соединения
Product: Branch t6 Reporter: Roman Savochenko <rom_as>
Component: NetworkManagerAssignee: Mikhail Efremov <sem>
Status: CLOSED FIXED QA Contact: QA t6 <qa-t6>
Severity: major    
Priority: P3 CC: mike
Version: не указана   
Hardware: all   
OS: Linux   

Description Roman Savochenko 2012-05-23 16:38:53 MSK
Уже неоднократно замечал падение демона NetworkManager при установке DSL-соединения, сразу после загрузки. В dmesg по этому поводу видно:
[   92.437445] PPP generic driver version 2.4.2
[   92.558917] NET: Registered protocol family 17
[   92.638011] NET: Registered protocol family 24
[   96.255951] nm-dispatcher.a[19914]: segfault at 0 ip b76f5128 sp bfbb8df0 error 4 in libnm-glib.so.2.5.0[b76ee000+26000]

Для восстановления приходится делать:
$ service NetworkManager restart
Comment 1 Mikhail Efremov 2012-05-23 17:16:35 MSK
Поставьте NetworkManager-debuginfo и NetworkManager-glib-debuginfo, запустите NM c --no-daemon на одной консоли и на другой:
killall nm-dispatcher.action
/usr/lib/NetworkManager/nm-dispatcher.action --debug --persist
Это все от root'а.
После чего попробуйте воспроизвести падение и вывод с обоих консолей приложите сюда.
Comment 2 Roman Savochenko 2012-05-25 09:27:53 MSK
(В ответ на комментарий №1)
> Поставьте NetworkManager-debuginfo и NetworkManager-glib-debuginfo
В T6 нет ни первого ни второго:
[roman@roman ~]$ apt-cache search NetworkManager-glib
NetworkManager-glib - Libraries for adding NetworkManager support to applications that use glib
NetworkManager-glib-devel - Header files for adding NetworkManager support to applications that use glib.
NetworkManager-glib-devel-doc - Development documentation for NetworkManager-glib
Comment 3 Michael Shigorin 2012-05-25 11:29:22 MSK
Добавил к http://www.altlinux.org/RPM/debuginfo напоминание, что это теперь отдельный компонент репозиториев.
Comment 4 Roman Savochenko 2012-07-07 09:10:34 MSK
(В ответ на комментарий №1)
> Поставьте NetworkManager-debuginfo и NetworkManager-glib-debuginfo, запустите
> NM c --no-daemon на одной консоли и на другой:
> killall nm-dispatcher.action
> /usr/lib/NetworkManager/nm-dispatcher.action --debug --persist
> Это все от root'а.
Вот такое здесь:
[root@roman ~]# /usr/lib/NetworkManager/nm-dispatcher.action --debug --persist
** Message: ------------ Script Environment ------------
** Message:   CONNECTION_UUID=317b48e0-6edf-43bb-9f39-53d8ba517334
** Message:   IP4_ADDRESS_0=46.98.117.31/32 212.115.225.139
** Message:   IP4_NUM_ADDRESSES=1
** Message:   IP4_NAMESERVERS=212.115.255.55 212.115.255.5
** Message:   IP4_NUM_ROUTES=0
** Message:

** Message: Script: /etc/NetworkManager/dispatcher.d/10-netfs ppp0 up
** Message: Script: /etc/NetworkManager/dispatcher.d/20-hostname ppp0 up
** Message: Script: /etc/NetworkManager/dispatcher.d/30-efw ppp0 up
** Message: Script: /etc/NetworkManager/dispatcher.d/50-ntpd ppp0 up
** Message: Script: /etc/NetworkManager/dispatcher.d/70-vendor-encap ppp0 up
** Message: Script: /etc/NetworkManager/dispatcher.d/80-etcnet-post ppp0 up

(nm-dispatcher.action:24544): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `NMObject'

(nm-dispatcher.action:24544): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `NMObject'

(nm-dispatcher.action:24544): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `NMObject'

(nm-dispatcher.action:24544): GLib-GObject-CRITICAL **: g_type_instance_get_private: assertion `instance != NULL && instance->g_class != NULL' failed

(nm-dispatcher.action:24544): GLib-GObject-WARNING **: invalid unclassed pointer in cast to `GObject'

(nm-dispatcher.action:24544): GLib-GObject-CRITICAL **: g_object_class_find_property: assertion `G_IS_OBJECT_CLASS (class)' failed
Ошибка сегментирования
Comment 5 Mikhail Efremov 2012-07-11 19:36:34 MSK
> (nm-dispatcher.action:24544): GLib-GObject-CRITICAL **:
> g_object_class_find_property: assertion `G_IS_OBJECT_CLASS (class)' failed
> Ошибка сегментирования

Этого мало, чтобы разобраться. Нужен нормальный backtrace из-под gdb:
gdb /usr/lib/NetworkManager/nm-dispatcher.action
(gdb) run --debug --persist
Потом воспроизвести падение и получить backtrace:
(gdb) bt

gdb должен быть установлен, конечно.
Comment 6 Roman Savochenko 2012-07-12 20:11:46 MSK
(В ответ на комментарий №5)
> > (nm-dispatcher.action:24544): GLib-GObject-CRITICAL **:
> > g_object_class_find_property: assertion `G_IS_OBJECT_CLASS (class)' failed
> > Ошибка сегментирования
> Этого мало, чтобы разобраться. Нужен нормальный backtrace из-под gdb:
OK:
Program received signal SIGSEGV, Segmentation fault.
0xb7f95128 in handle_property_changed (key=0x8067f90, data=0x80695b0, user_data=0x8068000) at nm-object.c:340
340                     g_warning ("%s: property '%s' changed but wasn't defined by object type %s.",
(gdb) bt
#0  0xb7f95128 in handle_property_changed (key=0x8067f90, data=0x80695b0, user_data=0x8068000) at nm-object.c:340
#1  0xb7dd55ee in g_hash_table_foreach (hash_table=0x8067ac0, func=0xb7f94e40 <handle_property_changed>,
    user_data=0x8068000) at ghash.c:1449
#2  0xb7f958ee in _nm_object_process_properties_changed (self=0x8068000, properties=0x8067ac0) at nm-object.c:383
#3  0xb7f9ab80 in get_all_cb (proxy=0x8067790, call=0x1, user_data=0x8068000) at nm-device.c:331
#4  0xb7f3373f in d_pending_call_notify (dcall=0x8068988, data=0x8069a18) at dbus-gproxy.c:1823
#5  0xb7f07aa1 in _dbus_pending_call_complete (pending=0x8068988) at dbus-pending-call.c:199
#6  0xb7ef26a6 in complete_pending_call_and_unlock (connection=0x8057dd0, pending=0x8068988, message=0x806a210)
    at dbus-connection.c:2303
#7  0xb7ef5fb0 in dbus_connection_dispatch (connection=0x8057dd0) at dbus-connection.c:4552
#8  0xb7f2e19d in message_queue_dispatch (source=0x805a860, callback=0, user_data=0x0) at dbus-gmain.c:90
#9  0xb7de77ba in g_main_dispatch (context=0x8056218) at gmain.c:2441
#10 g_main_context_dispatch (context=0x8056218) at gmain.c:3011
#11 0xb7de7fa0 in g_main_context_iterate (context=0x8056218, block=1, dispatch=1, self=<value optimized out>)
    at gmain.c:3089
#12 0xb7de859b in g_main_loop_run (loop=0x80562a8) at gmain.c:3297
#13 0x0804ba4d in main (argc=1, argv=0xbffff654) at nm-dispatcher-action.c:787
Comment 7 Mikhail Efremov 2012-07-13 00:06:42 MSK
Попробуйте поставить NM из task #75287.
Это релизный 0.8.6, без патчей из более позднего гита. Есть у меня подозрение, что там что-то сломали.
Comment 8 Roman Savochenko 2012-07-14 17:10:48 MSK
(В ответ на комментарий №7)
> Попробуйте поставить NM из task #75287.
> Это релизный 0.8.6, без патчей из более позднего гита. Есть у меня подозрение,
> что там что-то сломали.
Пока (уже два дня) падений указанной сборки не замечал.
Comment 9 Mikhail Efremov 2012-07-15 00:05:37 MSK
Ага, тогда я на днях соберу NM в p6, надергав только багфикс-патчей. Бага закроется этой сборкой, если проблема появится опять - переоткройте багу.
Но не должна, я вроде понял в каких коммитах сломали. Разбираться подробнее смысла нет, на этой ветке релизов уже не будет.
Comment 10 Repository Robot 2012-07-17 11:29:54 MSK
NetworkManager-0.8.6-alt3.M60P.1 -> p6:

* Mon Jul 16 2012 Mikhail Efremov <sem@altlinux> 0.8.6-alt3.M60P.1
- Rollback to 0.8.6 release again (closes: #27362).
- Add patches from upstream git:
    + ppp: change handling of lcp-echo-failure and lcp-echo-interval
      (bgo #663970).
    + core: check the iface index correctly.
    + core: handle N900 USB network interface again.