Bug 296740

Summary: Random plasma segfault.
Product: Network Management Reporter: P. Varet <p.varet>
Component: Plasma WidgetAssignee: Sebastian K├╝gler <sebas>
Status: RESOLVED FIXED    
Severity: crash CC: aaronluna75, lamarque, p.varet, wstephenson
Priority: NOR    
Version: 0.9   
Target Milestone: ---   
Platform: Ubuntu Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: New crash information added by DrKonqi

Description P. Varet 2012-03-25 12:54:54 UTC
Application: plasma-desktop (0.4)
KDE Platform Version: 4.8.1 (4.8.1)
Qt Version: 4.8.0
Operating System: Linux 3.0.0-16-generic x86_64
Distribution: Ubuntu 11.10

-- Information about the crash:
Plasma crashes out of the blue while not doing anything in particular, a few times a week in average.

- Custom settings of the application:

This seemed to start happening after I started using the "Astronomy Picture of the Day" dynamic desktop background. (Maybe a red herring? The traceback seems to involve the NetworkManager applet.)

-- Backtrace:
Application: Plasma Desktop Shell (plasma-desktop), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f9cc2a457a0 (LWP 2674))]

Thread 5 (Thread 0x7f9c9d71d700 (LWP 2677)):
#0  0x00007fff263ff92c in clock_gettime ()
#1  0x00007f9cb68c507b in __GI_clock_gettime (clock_id=1, tp=0x7f9c9d71cb20) at ../sysdeps/unix/clock_gettime.c:100
#2  0x00007f9cbf443724 in do_gettime (frac=0x7f9c9d71cb38, sec=0x7f9c9d71cb30) at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0x00007f9cbf51b38d in QTimerInfoList::updateCurrentTime (this=0x7f9c98002660) at kernel/qeventdispatcher_unix.cpp:343
#5  0x00007f9cbf51b6c3 in QTimerInfoList::timerWait (this=0x7f9c98002660, tm=...) at kernel/qeventdispatcher_unix.cpp:450
#6  0x00007f9cbf51a0fc in timerSourcePrepareHelper (src=<optimized out>, timeout=0x7f9c9d71cc1c) at kernel/qeventdispatcher_glib.cpp:136
#7  0x00007f9cbf51a1a5 in timerSourcePrepare (source=<optimized out>, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#8  0x00007f9cb660eff2 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#9  0x00007f9cb660fdfd in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#10 0x00007f9cb6610429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#11 0x00007f9cbf51ac26 in QEventDispatcherGlib::processEvents (this=0x7f9c980009e0, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:426
#12 0x00007f9cbf4ea402 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#13 0x00007f9cbf4ea657 in QEventLoop::exec (this=0x7f9c9d71cdb0, flags=...) at kernel/qeventloop.cpp:204
#14 0x00007f9cbf3ea067 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#15 0x00007f9cbf4ca17f in QInotifyFileSystemWatcherEngine::run (this=0x1b828b0) at io/qfilesystemwatcher_inotify.cpp:248
#16 0x00007f9cbf3ed08b in QThreadPrivate::start (arg=0x1b828b0) at thread/qthread_unix.cpp:298
#17 0x00007f9cb711cefc in start_thread (arg=0x7f9c9d71d700) at pthread_create.c:304
#18 0x00007f9cc232f59d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#19 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f9c96670700 (LWP 2678)):
#0  0x00007f9cb661040d in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f9cbf51ac26 in QEventDispatcherGlib::processEvents (this=0x7f9c980027e0, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:426
#2  0x00007f9cbf4ea402 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#3  0x00007f9cbf4ea657 in QEventLoop::exec (this=0x7f9c9666fdb0, flags=...) at kernel/qeventloop.cpp:204
#4  0x00007f9cbf3ea067 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#5  0x00007f9cbf4ca17f in QInotifyFileSystemWatcherEngine::run (this=0x1dde480) at io/qfilesystemwatcher_inotify.cpp:248
#6  0x00007f9cbf3ed08b in QThreadPrivate::start (arg=0x1dde480) at thread/qthread_unix.cpp:298
#7  0x00007f9cb711cefc in start_thread (arg=0x7f9c96670700) at pthread_create.c:304
#8  0x00007f9cc232f59d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f9c95b8c700 (LWP 2679)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f9cbc522042 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#2  0x00007f9cbc522079 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#3  0x00007f9cb711cefc in start_thread (arg=0x7f9c95b8c700) at pthread_create.c:304
#4  0x00007f9cc232f59d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f9c92c23700 (LWP 2685)):
#0  0x00007f9cc2323473 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f9cb660ff68 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f9cb6610792 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f9c93701516 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007f9cb66352b6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f9cb711cefc in start_thread (arg=0x7f9c92c23700) at pthread_create.c:304
#6  0x00007f9cc232f59d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f9cc2a457a0 (LWP 2674)):
[KCrash Handler]
#6  0x00007f9ca4a16422 in qobject_cast<Solid::Control::Ifaces::NetworkInterfaceNm09*> (object=0x71) at ../../../../../solidcontrolfuture/libs/solid/control/ifaces/networkinterface.h:166
#7  Solid::Control::NetworkInterfaceNm09::connectionState (this=<optimized out>) at ../../../../../solidcontrolfuture/libs/solid/control/networkinterface.cpp:125
#8  0x00007f9ca5535a41 in NetworkManagerApplet::interfaceConnectionStateChanged (this=0x1449a70) at ../../applet/networkmanager.cpp:562
#9  0x00007f9ca5537f19 in NetworkManagerApplet::networkInterfaceRemoved (this=0x1449a70, uni=...) at ../../applet/networkmanager.cpp:532
#10 0x00007f9ca5539ae9 in qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at ./networkmanager.moc:101
#11 NetworkManagerApplet::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./networkmanager.moc:87
#12 0x00007f9cbf4ffa01 in QMetaObject::activate (sender=0x18ba8a0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff2636bcf0) at kernel/qobject.cpp:3547
#13 0x00007f9ca4a14785 in Solid::Control::NetworkManagerNm09::Notifier::networkInterfaceRemoved (this=<optimized out>, _t1=<optimized out>) at ./networkmanager.moc:137
#14 0x00007f9ca4a14c91 in Solid::Control::NetworkManagerNm09Private::_k_networkInterfaceRemoved (this=0x18ba8a0, uni=...) at ../../../../../solidcontrolfuture/libs/solid/control/networkmanager.cpp:229
#15 0x00007f9cbf4ffa01 in QMetaObject::activate (sender=0x16711e0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff2636be70) at kernel/qobject.cpp:3547
#16 0x00007f9ca3c4c6c5 in Solid::Control::Ifaces::NetworkManagerNm09::networkInterfaceRemoved (this=<optimized out>, _t1=<optimized out>) at ./networkmanager.moc:147
#17 0x00007f9ca3e672c7 in NMNetworkManagerNm09::nameOwnerChanged (this=0x16711e0, name=<optimized out>, oldOwner=..., newOwner=...) at ../../../../solidcontrolfuture/solid/networkmanager-0.9/manager.cpp:347
#18 0x00007f9ca3e69637 in qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at ./manager.moc:75
#19 NMNetworkManagerNm09::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./manager.moc:61
#20 0x00007f9ca3e696fb in NMNetworkManagerNm09::qt_metacall (this=0x16711e0, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7fff2636c100) at ./manager.moc:118
#21 0x00007f9cbf86635b in QDBusConnectionPrivate::deliverCall (this=0x11135c0, object=0x16711e0, msg=..., metaTypes=..., slotIdx=24) at qdbusintegrator.cpp:947
#22 0x00007f9cbf504bc6 in QObject::event (this=0x16711e0, e=<optimized out>) at kernel/qobject.cpp:1195
#23 0x00007f9cbe871104 in notify_helper (e=0x1ca5230, receiver=0x16711e0, this=0xf9b8b0) at kernel/qapplication.cpp:4555
#24 QApplicationPrivate::notify_helper (this=0xf9b8b0, receiver=0x16711e0, e=0x1ca5230) at kernel/qapplication.cpp:4527
#25 0x00007f9cbe875f83 in QApplication::notify (this=0xf88130, receiver=0x16711e0, e=0x1ca5230) at kernel/qapplication.cpp:4416
#26 0x00007f9cc01c39a6 in KApplication::notify (this=0xf88130, receiver=0x16711e0, event=0x1ca5230) at ../../kdeui/kernel/kapplication.cpp:311
#27 0x00007f9cbf4eb61c in QCoreApplication::notifyInternal (this=0xf88130, receiver=0x16711e0, event=0x1ca5230) at kernel/qcoreapplication.cpp:876
#28 0x00007f9cbf4ef3ea in sendEvent (event=0x1ca5230, receiver=0x16711e0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#29 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0xf151f0) at kernel/qcoreapplication.cpp:1500
#30 0x00007f9cbf51a793 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#31 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:279
#32 0x00007f9cb660fa5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007f9cb6610258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#34 0x00007f9cb6610429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007f9cbf51abbf in QEventDispatcherGlib::processEvents (this=0xf16ad0, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#36 0x00007f9cbe91628e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=<optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#37 0x00007f9cbf4ea402 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#38 0x00007f9cbf4ea657 in QEventLoop::exec (this=0x7fff2636cac0, flags=...) at kernel/qeventloop.cpp:204
#39 0x00007f9cbf4ef6e7 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#40 0x00007f9cc262e803 in kdemain (argc=1, argv=0x7fff2636cea8) at ../../../../plasma/desktop/shell/main.cpp:120
#41 0x00007f9cc226d30d in __libc_start_main (main=0x400640 <main(int, char**)>, argc=1, ubp_av=0x7fff2636cea8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff2636ce98) at libc-start.c:226
#42 0x0000000000400671 in _start ()

Reported using DrKonqi
Comment 1 P. Varet 2012-03-31 22:27:42 UTC
Created attachment 70045 [details]
New crash information added by DrKonqi

plasma-desktop (0.4) on KDE Platform 4.8.1 (4.8.1) using Qt 4.8.0

- What I was doing when the application crashed:

Nothing whatsoever. It happened completely randomly.

-- Backtrace (Reduced):
#6  0x00007f06a8996422 in qobject_cast<Solid::Control::Ifaces::NetworkInterfaceNm09*> (object=0x51) at ../../../../../solidcontrolfuture/libs/solid/control/ifaces/networkinterface.h:166
#7  Solid::Control::NetworkInterfaceNm09::connectionState (this=<optimized out>) at ../../../../../solidcontrolfuture/libs/solid/control/networkinterface.cpp:125
#8  0x00007f06a94b5a41 in NetworkManagerApplet::interfaceConnectionStateChanged (this=0x2047f90) at ../../applet/networkmanager.cpp:562
#9  0x00007f06a94b7f19 in NetworkManagerApplet::networkInterfaceRemoved (this=0x2047f90, uni=...) at ../../applet/networkmanager.cpp:532
#10 0x00007f06a94b9ae9 in qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at ./networkmanager.moc:101
Comment 2 Lamarque V. Souza 2012-03-31 23:20:41 UTC
Wich Plasma NM version do you use? You can see the version in "Manage Connections" -> "Other".

OBS: I am asking the Plasma NM version, not NetworkManager's version.

Please upgrade to the latest Plasma NM and check if that solves your problem:

http://lamarque-lvs.blogspot.com.br/2012/02/plasma-nm-090.html
Comment 3 P. Varet 2012-04-01 09:04:38 UTC
Hi Lamarque, thank you for the reply!

I'm on Plasma NM 0.9.0, which appears to be the latest version.

If the bug is NM-related, maybe this additional bit of information about my setup will be useful: I've got two network cards, with only one with a cable plugged in. (Not sure how that could be relevant, but you never know?)
Comment 4 Lamarque V. Souza 2012-04-01 15:21:15 UTC
According to the crash log Plasma NM received a NMNetworkManagerNm09::nameOwnerChanged from NetworkManager, which means NetworkManager was stopped or crashed. Which NetworkManager version do you use? Is there any error message in NetworkManager's log?
Comment 5 P. Varet 2012-04-04 12:50:14 UTC
Hi Lamarque! Thank your for your reply. Sorry about the delay in my response.

I have NetworkManager version 0.9.1.90-0ubuntu5.1.

And good catch, I have NM segfaults in my logs:

syslog.1:Apr  3 08:50:18 linux kernel: [128706.401841] NetworkManager[9329]: segfault at 8 ip 0000000000442751 sp 00007fffca60eb20 error 4 in NetworkManager[400000+ce000]

So I guess there are two problems, then: 1/ the segfault in NM, and 2/ the segfault in Plasma NM when NM aborts for its own reasons!
Comment 6 Lamarque V. Souza 2012-04-06 18:07:29 UTC
Git commit 5fee138a29f1d5c14fa67f7222ee110a5e87bb68 by Lamarque V. Souza.
Committed on 06/04/2012 at 20:05.
Pushed by lvsouza into branch 'nm09'.

Do not send the interfaceRemoved signal if NM stopped or crashed. If it
has crashed we can crash too if we send the interfaceRemoved signal here.

M  +1    -8    solidcontrolfuture/solid/networkmanager-0.9/manager.cpp

http://commits.kde.org/networkmanagement/5fee138a29f1d5c14fa67f7222ee110a5e87bb68
Comment 7 P. Varet 2012-04-08 01:06:06 UTC
Fantastic! Thank you, you've been very helpful. Looking forward to the next release!
Comment 8 Lamarque V. Souza 2012-12-07 16:58:32 UTC
*** Bug 311285 has been marked as a duplicate of this bug. ***