Bug 308293 - Carsh at Startup
Summary: Carsh at Startup
Status: RESOLVED FIXED
Alias: None
Product: Network Management
Classification: Miscellaneous
Component: KDED Module (show other bugs)
Version: 0.9
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Lamarque V. Souza
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-10-12 13:27 UTC by Chris
Modified: 2012-10-13 17:54 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 0.9.0.6


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris 2012-10-12 13:27:33 UTC
Application: kded4 ($Id$)
KDE Platform Version: 4.9.2 "release 511"
Qt Version: 4.8.3
Operating System: Linux 3.1.10-1.16-desktop x86_64
Distribution: "openSUSE 12.1 (x86_64)"

-- Information about the crash:
Powered on laptop at start of day.  In between 2 Kwallet requests for password this crash appeared.

The crash can be reproduced every time.

-- Backtrace:
Application: KDE Daemon (kdeinit4), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fa1f9a16760 (LWP 2085))]

Thread 4 (Thread 0x7fa1e0481700 (LWP 2095)):
#0  0x00007fff59bff8de in ?? ()
#1  0x00007fa1f3e52d9a in clock_gettime () from /lib64/librt.so.1
#2  0x00007fa1f858f174 in do_gettime (frac=0x7fa1e0480b58, sec=0x7fa1e0480b50) at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0x00007fa1f8667dcd in QTimerInfoList::updateCurrentTime (this=0x7fa1d80020d0) at kernel/qeventdispatcher_unix.cpp:343
#5  0x00007fa1f8668103 in QTimerInfoList::timerWait (this=0x7fa1d80020d0, tm=...) at kernel/qeventdispatcher_unix.cpp:450
#6  0x00007fa1f8666b3c in timerSourcePrepareHelper (src=<optimized out>, timeout=0x7fa1e0480c3c) at kernel/qeventdispatcher_glib.cpp:136
#7  0x00007fa1f8666be5 in timerSourcePrepare (source=<optimized out>, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#8  0x00007fa1f3b9db72 in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#9  0x00007fa1f3b9e97d in ?? () from /usr/lib64/libglib-2.0.so.0
#10 0x00007fa1f3b9efa9 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#11 0x00007fa1f8667666 in QEventDispatcherGlib::processEvents (this=0x7fa1d80008c0, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:426
#12 0x00007fa1f8637162 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#13 0x00007fa1f86373b7 in QEventLoop::exec (this=0x7fa1e0480dd0, flags=...) at kernel/qeventloop.cpp:204
#14 0x00007fa1f8535687 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#15 0x00007fa1f8616c0f in QInotifyFileSystemWatcherEngine::run (this=0x9223a0) at io/qfilesystemwatcher_inotify.cpp:248
#16 0x00007fa1f85386ec in QThreadPrivate::start (arg=0x9223a0) at thread/qthread_unix.cpp:338
#17 0x00007fa1f82a0f05 in start_thread () from /lib64/libpthread.so.0
#18 0x00007fa1f700110d in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7fa1dce4c700 (LWP 2204)):
#0  0x00007fa1f82a3014 in pthread_mutex_lock () from /lib64/libpthread.so.0
#1  0x00007fa1f3b9d9dd in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#2  0x00007fa1f3b9e97d in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007fa1f3b9f312 in g_main_loop_run () from /usr/lib64/libglib-2.0.so.0
#4  0x00007fa1dd344946 in ?? () from /usr/lib64/libgio-2.0.so.0
#5  0x00007fa1f3bc3e06 in ?? () from /usr/lib64/libglib-2.0.so.0
#6  0x00007fa1f82a0f05 in start_thread () from /lib64/libpthread.so.0
#7  0x00007fa1f700110d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7fa1ca037700 (LWP 2457)):
#0  0x00007fa1f6ff7ff3 in poll () from /lib64/libc.so.6
#1  0x00007fa1f3b9eae8 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007fa1f3b9efa9 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007fa1f8667666 in QEventDispatcherGlib::processEvents (this=0x7fa1c40008c0, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007fa1f8637162 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007fa1f86373b7 in QEventLoop::exec (this=0x7fa1ca036e00, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007fa1f8535687 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007fa1f85386ec in QThreadPrivate::start (arg=0x10ee790) at thread/qthread_unix.cpp:338
#8  0x00007fa1f82a0f05 in start_thread () from /lib64/libpthread.so.0
#9  0x00007fa1f700110d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7fa1f9a16760 (LWP 2085)):
[KCrash Handler]
#6  QObject::~QObject (this=0xa94880, __in_chrg=<optimized out>) at kernel/qobject.cpp:858
#7  0x00007fa1de9e1e49 in Knm::WirelessSecuritySetting::~WirelessSecuritySetting (this=0xa94880, __in_chrg=<optimized out>) at /usr/src/debug/networkmanagement-0.9.2.65git.1349821823/libs/internals/settings/802-11-wireless-security.cpp:38
#8  0x00007fa1de9df4ff in qDeleteAll<QList<Knm::Setting*>::const_iterator> (end=<optimized out>, begin=<optimized out>) at /usr/include/QtCore/qalgorithms.h:322
#9  qDeleteAll<QList<Knm::Setting*> > (c=...) at /usr/include/QtCore/qalgorithms.h:330
#10 Knm::Connection::~Connection (this=0x9ca2a0, __in_chrg=<optimized out>) at /usr/src/debug/networkmanagement-0.9.2.65git.1349821823/libs/internals/connection.cpp:158
#11 0x00007fa1de9df5b9 in Knm::Connection::~Connection (this=0x9ca2a0, __in_chrg=<optimized out>) at /usr/src/debug/networkmanagement-0.9.2.65git.1349821823/libs/internals/connection.cpp:159
#12 0x00007fa1de566384 in NMDBusSecretAgent::secretsReady (this=<optimized out>, con=0x9ca2a0, name=..., failed=false, needsSaving=false) at /usr/src/debug/networkmanagement-0.9.2.65git.1349821823/backends/NetworkManager/nmdbussecretagent.cpp:183
#13 0x00007fa1de52480f in qt_static_metacall (_a=0x7fff59b1f600, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at /usr/src/debug/networkmanagement-0.9.2.65git.1349821823/build/backends/NetworkManager/moc_nmdbussecretagent.cpp:68
#14 NMDBusSecretAgent::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=0x7fff59b1f600) at /usr/src/debug/networkmanagement-0.9.2.65git.1349821823/build/backends/NetworkManager/moc_nmdbussecretagent.cpp:57
#15 0x00007fa1f864c511 in QMetaObject::activate (sender=0xdd3fa0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff59b1f600) at kernel/qobject.cpp:3556
#16 0x00007fa1de794f42 in SecretsProvider::connectionRead (this=<optimized out>, _t1=0x9ca2a0, _t2=<optimized out>, _t3=false, _t4=false) at /usr/src/debug/networkmanagement-0.9.2.65git.1349821823/build/libs/service/moc_secretsprovider.cpp:119
#17 0x00007fa1de799cca in SecretStorage::walletOpenedForRead (this=0xdd3fa0, success=true) at /usr/src/debug/networkmanagement-0.9.2.65git.1349821823/libs/service/secretstorage.cpp:201
#18 0x00007fa1f864c511 in QMetaObject::activate (sender=0xaf7580, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff59b1fa10) at kernel/qobject.cpp:3556
#19 0x00007fa1f9517ca2 in KWallet::Wallet::walletOpened (this=<optimized out>, _t1=true) at /usr/src/debug/kdelibs-4.9.2/build/kdeui/kwallet.moc:167
#20 0x00007fa1f864c511 in QMetaObject::activate (sender=0x6422e0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff59b1fb60) at kernel/qobject.cpp:3556
#21 0x00007fa1f954985f in OrgKdeKWalletInterface::walletAsyncOpened (this=<optimized out>, _t1=0, _t2=75994034) at /usr/src/debug/kdelibs-4.9.2/build/kdeui/kwallet_interface.moc:324
#22 0x00007fa1f954bfd6 in OrgKdeKWalletInterface::qt_static_metacall (_o=0x6422e0, _id=<optimized out>, _a=0x7fff59b202c0, _c=<optimized out>) at /usr/src/debug/kdelibs-4.9.2/build/kdeui/kwallet_interface.moc:162
#23 0x00007fa1f954c27b in OrgKdeKWalletInterface::qt_metacall (this=0x6422e0, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7fff59b202c0) at /usr/src/debug/kdelibs-4.9.2/build/kdeui/kwallet_interface.moc:287
#24 0x00007fa1f5364f3b in QDBusConnectionPrivate::deliverCall (this=0x6a5030, object=0x6422e0, msg=..., metaTypes=..., slotIdx=9) at qdbusintegrator.cpp:947
#25 0x00007fa1f86516d6 in QObject::event (this=0x6422e0, e=<optimized out>) at kernel/qobject.cpp:1204
#26 0x00007fa1f779e0e4 in notify_helper (e=0xf84080, receiver=0x6422e0, this=0x6ba6f0) at kernel/qapplication.cpp:4557
#27 QApplicationPrivate::notify_helper (this=0x6ba6f0, receiver=0x6422e0, e=0xf84080) at kernel/qapplication.cpp:4529
#28 0x00007fa1f77a2eb3 in QApplication::notify (this=0x7fff59b20cf0, receiver=0x6422e0, e=0xf84080) at kernel/qapplication.cpp:4418
#29 0x00007fa1f93ff506 in KApplication::notify (this=0x7fff59b20cf0, receiver=0x6422e0, event=0xf84080) at /usr/src/debug/kdelibs-4.9.2/kdeui/kernel/kapplication.cpp:311
#30 0x00007fa1f863862c in QCoreApplication::notifyInternal (this=0x7fff59b20cf0, receiver=0x6422e0, event=0xf84080) at kernel/qcoreapplication.cpp:915
#31 0x00007fa1f863beda in sendEvent (event=0xf84080, receiver=0x6422e0) at kernel/qcoreapplication.h:231
#32 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x6163d0) at kernel/qcoreapplication.cpp:1539
#33 0x00007fa1f86671d3 in sendPostedEvents () at kernel/qcoreapplication.h:236
#34 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:279
#35 0x00007fa1f3b9e5dd in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#36 0x00007fa1f3b9edd8 in ?? () from /usr/lib64/libglib-2.0.so.0
#37 0x00007fa1f3b9efa9 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#38 0x00007fa1f86675ff in QEventDispatcherGlib::processEvents (this=0x617770, flags=<optimized out>) at kernel/qeventdispatcher_glib.cpp:424
#39 0x00007fa1f784191e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=<optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#40 0x00007fa1f8637162 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#41 0x00007fa1f86373b7 in QEventLoop::exec (this=0x7fff59b20c80, flags=...) at kernel/qeventloop.cpp:204
#42 0x00007fa1f863c1d5 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#43 0x00007fa1e6d8e475 in kdemain (argc=1, argv=0x664ae0) at /usr/src/debug/kdelibs-4.9.2/kded/kded.cpp:924
#44 0x0000000000408984 in launch (argc=1, _name=0x40b4a4 "kded4", args=<optimized out>, cwd=0x0, envc=<optimized out>, envs=<optimized out>, reset_env=false, tty=0x0, avoid_loops=false, startup_id_str=0x40b326 "0") at /usr/src/debug/kdelibs-4.9.2/kinit/kinit.cpp:734
#45 0x0000000000405f59 in main (argc=4, argv=0x7fff00000001, envp=0x7fff59b21de0) at /usr/src/debug/kdelibs-4.9.2/kinit/kinit.cpp:1849

Reported using DrKonqi
Comment 1 Christoph Feck 2012-10-12 14:14:54 UTC
Lamarque, the problem is probably with the qDeleteAll() change in Qt 4.8. Within the destructor, you must not remove yourself from the list. See also https://git.reviewboard.kde.org/r/102981/
Comment 2 Lamarque V. Souza 2012-10-12 15:43:47 UTC
Git commit 989ced86c8e14c69036fca5ce254d65990087c0a by Lamarque V. Souza.
Committed on 12/10/2012 at 17:40.
Pushed by lvsouza into branch 'nm09'.

Fix another potential case of qDeleteAll() crash.

M  +5    -2    kded/nm08connections.cpp
M  +1    -1    plasma_nm_version.h

http://commits.kde.org/networkmanagement/989ced86c8e14c69036fca5ce254d65990087c0a
Comment 3 Lamarque V. Souza 2012-10-12 15:43:47 UTC
Git commit 3d95007a00e39d4a9ba814bc0f69428fba32a090 by Lamarque V. Souza.
Committed on 12/10/2012 at 17:29.
Pushed by lvsouza into branch 'nm09'.

Fix crash when deleting connection.
FIXED-IN: 0.9.0.6

M  +12   -5    libs/internals/connection.cpp
M  +1    -0    libs/internals/connection.h

http://commits.kde.org/networkmanagement/3d95007a00e39d4a9ba814bc0f69428fba32a090
Comment 4 Lamarque V. Souza 2012-10-12 15:44:59 UTC
Git commit 75942e42032ca1d505ba4c7f77b3ff05a2865eac by Lamarque V. Souza.
Committed on 12/10/2012 at 17:41.
Pushed by lvsouza into branch 'master'.

Fix crash when deleting connection.
FIXED-IN: 0.9.0.6

M  +12   -5    libs/internals/connection.cpp
M  +1    -0    libs/internals/connection.h

http://commits.kde.org/networkmanagement/75942e42032ca1d505ba4c7f77b3ff05a2865eac
Comment 5 Lamarque V. Souza 2012-10-12 15:44:59 UTC
Git commit ae9e7b8ad72fbf1ce4e0093e1ff43ac0e7cd7478 by Lamarque V. Souza.
Committed on 12/10/2012 at 17:42.
Pushed by lvsouza into branch 'master'.

Fix another potential case of qDeleteAll() crash.

M  +5    -2    kded/nm08connections.cpp
M  +1    -1    plasma_nm_version.h

http://commits.kde.org/networkmanagement/ae9e7b8ad72fbf1ce4e0093e1ff43ac0e7cd7478
Comment 6 Lamarque V. Souza 2012-10-12 15:46:05 UTC
(In reply to comment #1)
> Lamarque, the problem is probably with the qDeleteAll() change in Qt 4.8.
> Within the destructor, you must not remove yourself from the list. See also
> https://git.reviewboard.kde.org/r/102981/

Ok, thanks for the tip.
Comment 7 David Faure 2012-10-13 17:36:12 UTC
Git commit 98819f62ef5a1a47d643cc76b506ea2b0e1310ed by David Faure.
Committed on 13/10/2012 at 19:19.
Pushed by dfaure into branch 'master'.

Fix crash on kded4 startup

Previous commit removed the clearning of the list, and didn't remove
items from the list in the loop (-> double delete, and infinite loop)

M  +2    -1    libs/internals/connection.cpp

http://commits.kde.org/networkmanagement/98819f62ef5a1a47d643cc76b506ea2b0e1310ed
Comment 8 Lamarque V. Souza 2012-10-13 17:47:00 UTC
Git commit c06adc6a5f4e34d267f699a4cb4a04c9fdfb28d5 by Lamarque V. Souza.
Committed on 13/10/2012 at 19:45.
Pushed by lvsouza into branch 'master'.

Fix crash on kded4 startup.

M  +1    -1    kded/nm08connections.cpp
M  +1    -1    plasma_nm_version.h

http://commits.kde.org/networkmanagement/c06adc6a5f4e34d267f699a4cb4a04c9fdfb28d5
Comment 9 Lamarque V. Souza 2012-10-13 17:54:05 UTC
Git commit f35856aae1dd5b8b1a44038fc5427c1ed2bb7549 by Lamarque V. Souza.
Committed on 13/10/2012 at 19:45.
Pushed by lvsouza into branch 'nm09'.

Fix crash on kded4 startup.

M  +1    -1    kded/nm08connections.cpp
M  +1    -1    plasma_nm_version.h

http://commits.kde.org/networkmanagement/f35856aae1dd5b8b1a44038fc5427c1ed2bb7549
Comment 10 Lamarque V. Souza 2012-10-13 17:54:05 UTC
Git commit a9d5297996a977d8f2b78e78e63c9ecab9896adc by Lamarque V. Souza, on behalf of David Faure.
Committed on 13/10/2012 at 19:19.
Pushed by lvsouza into branch 'nm09'.

Fix crash on kded4 startup

Previous commit removed the clearning of the list, and didn't remove
items from the list in the loop (-> double delete, and infinite loop)
(cherry picked from commit 98819f62ef5a1a47d643cc76b506ea2b0e1310ed)

M  +2    -1    libs/internals/connection.cpp

http://commits.kde.org/networkmanagement/a9d5297996a977d8f2b78e78e63c9ecab9896adc