Bug 195692

Summary: Plamsa is crashed after KDE started.
Product: [Unmaintained] plasma4 Reporter: Jan <liquidsky89>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: andresbajotierra, aseigo
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Jan 2009-06-08 18:23:58 UTC
Application that crashed: plasma-desktop
Version of the application: 0.3
KDE Version: 4.2.88 (KDE 4.2.88 (KDE 4.3 >= 20090527)) "release 135"
Qt Version: 4.5.1
Operating System: Linux 2.6.27.21-0.1-pae i686
Distribution: "openSUSE 11.1 (i586)"

What I was doing when the application crashed:
After I started KDE, Plasma crashed and then immediately started again. It was a grey white grid in the background (upper right side of the screen). The rest of the screen was black.

 -- Backtrace:
Application: Plasma-Arbeitsfläche (kdeinit), signal: Segmentation fault
[Current thread is 1 (Thread 0xb5eb8700 (LWP 13122))]

Thread 3 (Thread 0xa8f98b90 (LWP 13128)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb7d63c35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb7dc3722 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#3  0xb763cae2 in ?? () from /usr/lib/libQtNetwork.so.4
#4  0xb7dc270e in ?? () from /usr/lib/libQtCore.so.4
#5  0xb7d601b5 in start_thread () from /lib/libpthread.so.0
#6  0xb657f3be in clone () from /lib/libc.so.6

Thread 2 (Thread 0xa7c14b90 (LWP 13160)):
[KCrash Handler]
#6  0xb7c59fc0 in KCatalog::language (this=0x8560618) at /usr/include/QtCore/qbytearray.h:74
#7  0xb7c71170 in KLocalePrivate::translate_priv (this=0x80d28f0, msgctxt=0x0, msgid=0xb768a5ce "Host not found", msgid_plural=0x0, n=0, language=0xa7c13be0, translation=0xa7c13be4)
    at /usr/src/debug/kdelibs-4.2.88svn973768/kdecore/localization/klocale.cpp:807
#8  0xb7c71b45 in KLocale::translateQt (this=0x80c4c80, context=0xb769288b "QHostInfoAgent", sourceText=0xb768a5ce "Host not found", comment=0x0)
    at /usr/src/debug/kdelibs-4.2.88svn973768/kdecore/localization/klocale.cpp:907
#9  0xb7be5330 in KDETranslator::translate (this=0x8131098, context=0xb769288b "QHostInfoAgent", sourceText=0xb768a5ce "Host not found", message=0x0)
    at /usr/src/debug/kdelibs-4.2.88svn973768/kdecore/kernel/kglobal_p.h:52
#10 0xb7ed4551 in QTranslator::translate(char const*, char const*, char const*, int) const () from /usr/lib/libQtCore.so.4
#11 0xb7eba3ca in QCoreApplication::translate(char const*, char const*, char const*, QCoreApplication::Encoding, int) () from /usr/lib/libQtCore.so.4
#12 0xb7eba816 in QCoreApplication::translate(char const*, char const*, char const*, QCoreApplication::Encoding) () from /usr/lib/libQtCore.so.4
#13 0xb7ebd802 in QMetaObject::tr(char const*, char const*) const () from /usr/lib/libQtCore.so.4
#14 0xb7646d46 in ?? () from /usr/lib/libQtNetwork.so.4
#15 0xb763cbf3 in QHostInfo::fromName(QString const&) () from /usr/lib/libQtNetwork.so.4
#16 0xb7870e7d in QtConcurrent::StoredFunctorCall1<QHostInfo, QHostInfo (*)(QString const&), QString>::runFunctor (this=0x8578be0) at /usr/include/QtCore/qtconcurrentstoredfunctioncall.h:274
#17 0xb7871d91 in QtConcurrent::RunFunctionTask<QHostInfo>::run (this=0x8578be0) at /usr/include/QtCore/qtconcurrentrunbase.h:103
#18 0xb7db8b84 in ?? () from /usr/lib/libQtCore.so.4
#19 0xb7dc270e in ?? () from /usr/lib/libQtCore.so.4
#20 0xb7d601b5 in start_thread () from /lib/libpthread.so.0
#21 0xb657f3be in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb5eb8700 (LWP 13122)):
#0  0xffffe430 in __kernel_vsyscall ()
#1  0xb7d63c35 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb7dc3722 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/libQtCore.so.4
#3  0xb7db77fa in ?? () from /usr/lib/libQtCore.so.4
#4  0xb7db7d33 in QThreadPool::~QThreadPool() () from /usr/lib/libQtCore.so.4
#5  0xb7db8fba in ?? () from /usr/lib/libQtCore.so.4
#6  0xb64db9b1 in exit () from /lib/libc.so.6
#7  0xb68ba95b in ?? () from /usr/lib/libQtGui.so.4
#8  0xb737454a in KApplication::xioErrhandler (this=0x80a2b00, dpy=0x80b2e08) at /usr/src/debug/kdelibs-4.2.88svn973768/kdeui/kernel/kapplication.cpp:408
#9  0xb7374586 in kde_xio_errhandler (dpy=0x80b2e08) at /usr/src/debug/kdelibs-4.2.88svn973768/kdeui/kernel/kapplication.cpp:125
#10 0xb79bd3c2 in _XIOError () from /usr/lib/libX11.so.6
#11 0xb79c53a5 in ?? () from /usr/lib/libX11.so.6
#12 0xb79c5bc5 in _XEventsQueued () from /usr/lib/libX11.so.6
#13 0xb79adb3f in XEventsQueued () from /usr/lib/libX11.so.6
#14 0xb68f6b3d in ?? () from /usr/lib/libQtGui.so.4
#15 0xb63ff5d8 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#16 0xb63fff6d in ?? () from /usr/lib/libglib-2.0.so.0
#17 0xb6400241 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#18 0xb7ee2558 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#19 0xb68f6975 in ?? () from /usr/lib/libQtGui.so.4
#20 0xb7eb50fa in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#21 0xb7eb553a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#22 0xb7eb79e9 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#23 0xb6856517 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#24 0xb48f6760 in kdemain () from /usr/lib/libkdeinit4_plasma-desktop.so
#25 0x0804e2b0 in launch (argc=1, _name=0x808affc "/usr/bin/plasma-desktop", args=0x808b014 "", cwd=0x0, envc=0, envs=0x808b018 "", reset_env=false, tty=0x0, avoid_loops=false, 
    startup_id_str=0x8051390 "0") at /usr/src/debug/kdelibs-4.2.88svn973768/kinit/kinit.cpp:671
#26 0x0804ea8d in handle_launcher_request (sock=7, who=<value optimized out>) at /usr/src/debug/kdelibs-4.2.88svn973768/kinit/kinit.cpp:1163
#27 0x0804ef23 in handle_requests (waitForPid=0) at /usr/src/debug/kdelibs-4.2.88svn973768/kinit/kinit.cpp:1356
#28 0x0804fbca in main (argc=2, argv=0xbf9e9d14, envp=0xbf9e9d20) at /usr/src/debug/kdelibs-4.2.88svn973768/kinit/kinit.cpp:1783

Reported using DrKonqi
Comment 1 Aaron J. Seigo 2009-06-08 18:37:56 UTC
it looks like KLocale/KCatalog are not thread safe; it appears that the catalog collection was being accessed from one thread (where the host look up was happening) while another had modified it.

ugly, but fixable. :)
Comment 2 Aaron J. Seigo 2009-06-08 18:43:04 UTC
SVN commit 978957 by aseigo:

be more careful with handling of the catalogs collection so we don't end up with invalid iterators or other monkey business due to two threads translating and modifying the catalog collection at the same time. worst case is that we get something improperly translated (e.g. to the wrong language) when that happenswhich should be preferable to crashing.
BUG:195692


 M  +6 -4      klocale.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=978957
Comment 3 Dario Andres 2009-08-10 22:32:12 UTC
Bug 191122 is also related...
Regards