Bug 192536

Summary: kiotraderparse is not thread-safe
Product: [Frameworks and Libraries] kdelibs Reporter: peaches <pzcdyhbb0nzq9layi4mcj1hhp>
Component: kdecoreAssignee: kdelibs bugs <kdelibs-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: a.m.p.boelens, anders.linden, andrechalella, animesh.saxena, ant_978red, benderamp, bill-bugs.kde.org, cosminratiu, davide.bettio, disk08, duchai, faure, gera, jian1505, jlp, j__n, kavol, kde, kde, kfebert, marek.trylinski, martin.schwinzerl, matthias.sweertvaegher, meinert, paul.f.fee, pino, Regnaron, sputnikshock, steffen_moeller, wolfgang, worthlessavatar, yashabk
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In:

Description peaches 2009-05-13 08:17:03 UTC
Application that crashed: krunner
Version of the application: 0.1
KDE Version: 4.2.85 (KDE 4.2.85 (KDE 4.3 Beta1))
Qt Version: 4.5.1
Operating System: Linux 2.6.28-11-generic x86_64
Distribution: Ubuntu 9.04

What I was doing when the application crashed:
I think it was a quick type to a match.

 -- Backtrace:
Application: Run Command Interface (krunner), signal: Segmentation fault
[Current thread is 0 (LWP 8679)]

Thread 5 (Thread 0x7ffda5ae2950 (LWP 10519)):
[KCrash Handler]
#5  0x00007ffdc5652126 in kiotraderlex () at lex.c:775
#6  0x00007ffdc56516e6 in kiotraderparse () at yacc.c:1405
#7  0x00007ffdc5652026 in KTraderParse_mainParse (_code=0x3374b98 "exist Exec and ('styl' =~ Name)") at yacc.y:151
#8  0x00007ffdc564d94a in KTraderParse::parseConstraints (_constr=@0x7ffda5ae1d30) at /opt/kde/trunk/src/KDE/kdelibs/kdecore/services/ktraderparse.cpp:44
#9  0x00007ffdc564cbf9 in KServiceTypeTrader::applyConstraints (lst=@0x7ffda5ae19e0, constraint=@0x7ffda5ae1d30) at /opt/kde/trunk/src/KDE/kdelibs/kdecore/services/kservicetypetrader.cpp:59
#10 0x00007ffdc564cdd0 in KServiceTypeTrader::defaultOffers (this=0x18a7e70, serviceType=@0x7ffda5ae1d00, constraint=@0x7ffda5ae1d30)
    at /opt/kde/trunk/src/KDE/kdelibs/kdecore/services/kservicetypetrader.cpp:127
#11 0x00007ffdc564ce3d in KServiceTypeTrader::query (this=0x18a7e70, serviceType=@0x7ffda5ae1d00, constraint=@0x7ffda5ae1d30)
    at /opt/kde/trunk/src/KDE/kdelibs/kdecore/services/kservicetypetrader.cpp:141
#12 0x00007ffda9b63040 in ServiceRunner::match (this=0x2051e10, context=@0x1a47b08) at /opt/kde/trunk/src/KDE/kdebase/workspace/plasma/runners/services/servicerunner.cpp:56
#13 0x00007ffdc6a059d4 in Plasma::AbstractRunner::performMatch (this=0x2051e10, localContext=@0x1a47b08) at /opt/kde/trunk/src/KDE/kdelibs/plasma/abstractrunner.cpp:160
#14 0x00007ffdc6a7d950 in Plasma::FindMatchesJob::run (this=0x1a47af0) at /opt/kde/trunk/src/KDE/kdelibs/plasma/private/runnerjobs.cpp:158
#15 0x00007ffdc66ff3cf in ThreadWeaver::JobRunHelper::runTheJob (this=0x7ffda5ae1ee0, th=0x20fce60, job=0x1a47af0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/Job.cpp:106
#16 0x00007ffdc66ff609 in ThreadWeaver::Job::execute (this=0x1a47af0, th=0x20fce60) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/Job.cpp:135
#17 0x00007ffdc66fe8f8 in ThreadWeaver::ThreadRunHelper::run (this=0x7ffda5ae1f90, parent=0x1846bc0, th=0x20fce60) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/Thread.cpp:95
#18 0x00007ffdc66fea41 in ThreadWeaver::Thread::run (this=0x20fce60) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/Thread.cpp:142
#19 0x00007ffdc4e8da2d in QThreadPrivate::start (arg=0x20fce60) at /opt/kde/trunk/src/qt-copy/src/corelib/thread/qthread_unix.cpp:189
#20 0x00007ffdc4c063ba in start_thread () from /lib/libpthread.so.0
#21 0x00007ffdc1f3afcd in clone () from /lib/libc.so.6
#22 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7ffda52e1950 (LWP 10520)):
#0  0x00007ffdc4c0a2e9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007ffdc4e8e279 in QWaitConditionPrivate::wait (this=0x16aee50, time=18446744073709551615) at /opt/kde/trunk/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:87
#2  0x00007ffdc4e8ddd6 in QWaitCondition::wait (this=0x1846be8, mutex=0x1846940, time=18446744073709551615) at /opt/kde/trunk/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:159
#3  0x00007ffdc66fbdd1 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1846bc0, th=0x2102ef0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007ffdc6700517 in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x1849070, th=0x2102ef0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:80
#5  0x00007ffdc66fb546 in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x1846bc0, th=0x2102ef0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:356
#6  0x00007ffdc670060f in ThreadWeaver::WorkingHardState::applyForWork (this=0x1849070, th=0x2102ef0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:71
#7  0x00007ffdc66fc00d in ThreadWeaver::WeaverImpl::applyForWork (this=0x1846bc0, th=0x2102ef0, previous=0x20e8d50) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:351
#8  0x00007ffdc66fe8ac in ThreadWeaver::ThreadRunHelper::run (this=0x7ffda52e0f90, parent=0x1846bc0, th=0x2102ef0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/Thread.cpp:87
#9  0x00007ffdc66fea41 in ThreadWeaver::Thread::run (this=0x2102ef0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/Thread.cpp:142
#10 0x00007ffdc4e8da2d in QThreadPrivate::start (arg=0x2102ef0) at /opt/kde/trunk/src/qt-copy/src/corelib/thread/qthread_unix.cpp:189
#11 0x00007ffdc4c063ba in start_thread () from /lib/libpthread.so.0
#12 0x00007ffdc1f3afcd in clone () from /lib/libc.so.6
#13 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7ffda4ae0950 (LWP 10521)):
#0  0x00007ffdc4c0a2e9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007ffdc4e8e279 in QWaitConditionPrivate::wait (this=0x16aee50, time=18446744073709551615) at /opt/kde/trunk/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:87
#2  0x00007ffdc4e8ddd6 in QWaitCondition::wait (this=0x1846be8, mutex=0x1846940, time=18446744073709551615) at /opt/kde/trunk/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:159
#3  0x00007ffdc66fbdd1 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1846bc0, th=0x2105990) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007ffdc6700517 in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x1849070, th=0x2105990) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:80
#5  0x00007ffdc66fb546 in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x1846bc0, th=0x2105990) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:356
#6  0x00007ffdc670060f in ThreadWeaver::WorkingHardState::applyForWork (this=0x1849070, th=0x2105990) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:71
#7  0x00007ffdc66fc00d in ThreadWeaver::WeaverImpl::applyForWork (this=0x1846bc0, th=0x2105990, previous=0x335b2c0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:351
#8  0x00007ffdc66fe8ac in ThreadWeaver::ThreadRunHelper::run (this=0x7ffda4adff90, parent=0x1846bc0, th=0x2105990) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/Thread.cpp:87
#9  0x00007ffdc66fea41 in ThreadWeaver::Thread::run (this=0x2105990) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/Thread.cpp:142
#10 0x00007ffdc4e8da2d in QThreadPrivate::start (arg=0x2105990) at /opt/kde/trunk/src/qt-copy/src/corelib/thread/qthread_unix.cpp:189
#11 0x00007ffdc4c063ba in start_thread () from /lib/libpthread.so.0
#12 0x00007ffdc1f3afcd in clone () from /lib/libc.so.6
#13 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7ffda42df950 (LWP 10522)):
#0  0x00007ffdc4c0a2e9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007ffdc4e8e279 in QWaitConditionPrivate::wait (this=0x16aee50, time=18446744073709551615) at /opt/kde/trunk/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:87
#2  0x00007ffdc4e8ddd6 in QWaitCondition::wait (this=0x1846be8, mutex=0x1846940, time=18446744073709551615) at /opt/kde/trunk/src/qt-copy/src/corelib/thread/qwaitcondition_unix.cpp:159
#3  0x00007ffdc66fbdd1 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1846bc0, th=0x21085b0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007ffdc6700517 in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x1849070, th=0x21085b0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:80
#5  0x00007ffdc66fb546 in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x1846bc0, th=0x21085b0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:356
#6  0x00007ffdc670060f in ThreadWeaver::WorkingHardState::applyForWork (this=0x1849070, th=0x21085b0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:71
#7  0x00007ffdc66fc00d in ThreadWeaver::WeaverImpl::applyForWork (this=0x1846bc0, th=0x21085b0, previous=0x0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:351
#8  0x00007ffdc6700632 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1849070, th=0x21085b0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WorkingHardState.cpp:74
#9  0x00007ffdc66fc00d in ThreadWeaver::WeaverImpl::applyForWork (this=0x1846bc0, th=0x21085b0, previous=0x184a770) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/WeaverImpl.cpp:351
#10 0x00007ffdc66fe8ac in ThreadWeaver::ThreadRunHelper::run (this=0x7ffda42def90, parent=0x1846bc0, th=0x21085b0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/Thread.cpp:87
#11 0x00007ffdc66fea41 in ThreadWeaver::Thread::run (this=0x21085b0) at /opt/kde/trunk/src/KDE/kdelibs/threadweaver/Weaver/Thread.cpp:142
#12 0x00007ffdc4e8da2d in QThreadPrivate::start (arg=0x21085b0) at /opt/kde/trunk/src/qt-copy/src/corelib/thread/qthread_unix.cpp:189
#13 0x00007ffdc4c063ba in start_thread () from /lib/libpthread.so.0
#14 0x00007ffdc1f3afcd in clone () from /lib/libc.so.6
#15 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ffdc7774790 (LWP 8679)):
#0  0x00007ffdc76ba726 in ?? () from /lib64/ld-linux-x86-64.so.2
#1  0x00007ffdc76bb4ee in ?? () from /lib64/ld-linux-x86-64.so.2
#2  0x00007ffdc76b48c6 in ?? () from /lib64/ld-linux-x86-64.so.2
#3  0x00007ffdbf8a62cc in ?? () from /lib/libdl.so.2
#4  0x00007ffdbf8a600f in dlclose () from /lib/libdl.so.2
#5  0x00007ffdacb07719 in ?? () from /usr/lib/libgmodule-2.0.so.0
#6  0x00007ffdacb07835 in g_module_close () from /usr/lib/libgmodule-2.0.so.0
#7  0x00007ffdbd6920cd in g_slist_foreach () from /usr/lib/libglib-2.0.so.0
#8  0x00007ffdacd0e7e0 in enchant_broker_free () from /usr/lib/libenchant.so.1
#9  0x00007ffdacf19109 in ~QSpellEnchantClient (this=0x1a746b0) at /opt/kde/trunk/src/KDE/kdelibs/sonnet/plugins/enchant/enchantclient.cpp:59
#10 0x00007ffdc4f8d9ef in QObjectPrivate::deleteChildren (this=0x1a8cb00) at /opt/kde/trunk/src/qt-copy/src/corelib/kernel/qobject.cpp:1854
#11 0x00007ffdc4f94d2f in ~QObject (this=0x1a8e360) at /opt/kde/trunk/src/qt-copy/src/corelib/kernel/qobject.cpp:844
#12 0x00007ffdc565856a in ~Loader (this=0x1a8e360) at /opt/kde/trunk/src/KDE/kdelibs/kdecore/sonnet/loader.cpp:79
#13 0x00007ffdc56574f0 in destroy () at /opt/kde/trunk/src/KDE/kdelibs/kdecore/sonnet/loader.cpp:53
#14 0x00007ffdc55bae79 in ~KCleanUpGlobalStatic (this=0x7ffdc599ca68) at /opt/kde/trunk/src/KDE/kdelibs/kdecore/kernel/kglobal.h:62
#15 0x00007ffdc1e8b6ed in exit () from /lib/libc.so.6
#16 0x00007ffdc4152370 in qt_xio_errhandler () at /opt/kde/trunk/src/qt-copy/src/gui/kernel/qapplication_x11.cpp:707
#17 0x00007ffdc5e28885 in KApplication::xioErrhandler (this=0x16af530, dpy=0x16e6e90) at /opt/kde/trunk/src/KDE/kdelibs/kdeui/kernel/kapplication.cpp:413
#18 0x00007ffdc5e288b3 in kde_xio_errhandler (dpy=0x16e6e90) at /opt/kde/trunk/src/KDE/kdelibs/kdeui/kernel/kapplication.cpp:130
#19 0x00007ffdc38016e4 in _XIOError () from /usr/lib/libX11.so.6
#20 0x00007ffdc3808a1f in ?? () from /usr/lib/libX11.so.6
#21 0x00007ffdc3809345 in _XEventsQueued () from /usr/lib/libX11.so.6
#22 0x00007ffdc37f1ed3 in XEventsQueued () from /usr/lib/libX11.so.6
#23 0x00007ffdc418be63 in x11EventSourceCheck (s=0x16b6e20) at /opt/kde/trunk/src/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:87
#24 0x00007ffdbd675ed2 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#25 0x00007ffdbd6767c9 in ?? () from /usr/lib/libglib-2.0.so.0
#26 0x00007ffdbd676a7c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#27 0x00007ffdc4fab364 in QEventDispatcherGlib::processEvents (this=0x16bc830, flags={i = -812891312}) at /opt/kde/trunk/src/qt-copy/src/corelib/kernel/qeventdispatcher_glib.cpp:326
#28 0x00007ffdc418b9df in QGuiEventDispatcherGlib::processEvents (this=0x16bc830, flags={i = -812891216}) at /opt/kde/trunk/src/qt-copy/src/gui/kernel/qguieventdispatcher_glib.cpp:202
#29 0x00007ffdc4f7a9d7 in QEventLoop::processEvents (this=0x7fffcf8c4480, flags={i = -812891088}) at /opt/kde/trunk/src/qt-copy/src/corelib/kernel/qeventloop.cpp:149
#30 0x00007ffdc4f7abe4 in QEventLoop::exec (this=0x7fffcf8c4480, flags={i = -812890976}) at /opt/kde/trunk/src/qt-copy/src/corelib/kernel/qeventloop.cpp:196
#31 0x00007ffdc4f7df74 in QCoreApplication::exec () at /opt/kde/trunk/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:888
#32 0x00007ffdc40e2e4c in QApplication::exec () at /opt/kde/trunk/src/qt-copy/src/gui/kernel/qapplication.cpp:3526
#33 0x00007ffdc746822b in kdemain (argc=1, argv=0x7fffcf8c4728) at /opt/kde/trunk/src/KDE/kdebase/workspace/krunner/main.cpp:59
#34 0x0000000000400927 in main (argc=1, argv=0x7fffcf8c4728) at /opt/kde/trunk/build/KDE/kdebase/workspace/krunner/krunner_dummy.cpp:3
Comment 1 peaches 2009-05-13 08:21:10 UTC
KDE trunk r965053, qt-copy r964678
Comment 2 Pino Toscano 2009-07-22 23:45:14 UTC
*** Bug 200286 has been marked as a duplicate of this bug. ***
Comment 3 Pino Toscano 2009-07-22 23:46:01 UTC
*** Bug 201110 has been marked as a duplicate of this bug. ***
Comment 4 Pino Toscano 2009-08-03 00:36:49 UTC
SVN commit 1006058 by pino:

Activate the reentrancy features for lex/yacc, and the bison bridge for flex.
This, together with the use of a scanner object, allows the resulting ktrader parser to be reentrant, thus to be used safely in multithreading contexts.
CCBUG: 192536


 M  +635 -440  lex.c  
 M  +18 -16    lex.l  
 M  +359 -248  yacc.c  
 M  +23 -41    yacc.h  
 M  +15 -6     yacc.y  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1006058
Comment 5 Pino Toscano 2009-08-03 00:42:07 UTC
SVN commit 1006063 by pino:

ktrader parser invocation: instead of using a static variable for current resulting tree and data being parsed, put them in a thread local storage
this avoids them being mutually rewritten by racing threads, and the result should guarantee reentrancy
CCBUG: 192536


 M  +26 -11    ktraderparse.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1006063
Comment 6 Dario Andres 2009-08-06 04:25:37 UTC
*** Bug 202683 has been marked as a duplicate of this bug. ***
Comment 7 Dario Andres 2009-08-07 14:23:48 UTC
*** Bug 202906 has been marked as a duplicate of this bug. ***
Comment 8 Dario Andres 2009-08-11 16:29:19 UTC
*** Bug 198833 has been marked as a duplicate of this bug. ***
Comment 9 Dario Andres 2009-08-11 16:29:34 UTC
*** Bug 203440 has been marked as a duplicate of this bug. ***
Comment 10 Dario Andres 2009-08-16 20:10:23 UTC
*** Bug 203981 has been marked as a duplicate of this bug. ***
Comment 11 Dario Andres 2009-08-16 20:12:30 UTC
*** Bug 203990 has been marked as a duplicate of this bug. ***
Comment 12 Dario Andres 2009-08-18 21:49:26 UTC
*** Bug 204320 has been marked as a duplicate of this bug. ***
Comment 13 Dario Andres 2009-08-25 03:22:02 UTC
*** Bug 204963 has been marked as a duplicate of this bug. ***
Comment 14 Dario Andres 2009-08-25 23:34:29 UTC
*** Bug 205108 has been marked as a duplicate of this bug. ***
Comment 15 Dario Andres 2009-09-02 03:54:31 UTC
*** Bug 205754 has been marked as a duplicate of this bug. ***
Comment 16 Dario Andres 2009-09-04 00:49:11 UTC
*** Bug 206135 has been marked as a duplicate of this bug. ***
Comment 17 Dario Andres 2009-09-04 14:59:38 UTC
*** Bug 206248 has been marked as a duplicate of this bug. ***
Comment 18 Dario Andres 2009-09-06 15:58:51 UTC
*** Bug 206476 has been marked as a duplicate of this bug. ***
Comment 19 Dario Andres 2009-09-07 13:55:27 UTC
*** Bug 206621 has been marked as a duplicate of this bug. ***
Comment 20 Dario Andres 2009-09-08 14:49:55 UTC
*** Bug 206744 has been marked as a duplicate of this bug. ***
Comment 21 Dario Andres 2009-09-09 15:21:34 UTC
*** Bug 206850 has been marked as a duplicate of this bug. ***
Comment 22 Jacopo De Simoi 2009-09-10 16:27:14 UTC
SVN commit 1022002 by jacopods:

KTraderParse is not thread safe in 4.3 - welcome back bigLock()
CCBUG: 192536
CCMAIL: pino@kde.org



 M  +5 -1      servicerunner.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1022002
Comment 23 Dario Andres 2009-09-11 16:52:11 UTC
*** Bug 207037 has been marked as a duplicate of this bug. ***
Comment 24 Dario Andres 2009-09-12 16:59:40 UTC
*** Bug 207103 has been marked as a duplicate of this bug. ***
Comment 25 Pino Toscano 2009-09-15 15:06:35 UTC
SVN commit 1023881 by pino:

Backport SVN commit 1006058 by pino:

Activate the reentrancy features for lex/yacc, and the bison bridge for flex.
This, together with the use of a scanner object, allows the resulting ktrader parser to be reentrant, thus to be used safely in multithreading contexts.
CCBUG: 192536


 M  +635 -440  lex.c  
 M  +18 -16    lex.l  
 M  +359 -248  yacc.c  
 M  +23 -41    yacc.h  
 M  +15 -6     yacc.y  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1023881
Comment 26 Pino Toscano 2009-09-15 15:12:14 UTC
SVN commit 1023884 by pino:

backport SVN commit 1006063 by pino:

ktrader parser invocation: instead of using a static variable for current resulting tree and data being parsed, put them in a thread local storage
this avoids them being mutually rewritten by racing threads, and the result should guarantee reentrancy
CCBUG: 192536


 M  +26 -11    ktraderparse.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1023884
Comment 27 Dario Andres 2009-09-16 03:00:26 UTC
*** Bug 207505 has been marked as a duplicate of this bug. ***
Comment 28 Jacopo De Simoi 2009-09-17 16:58:01 UTC
SVN commit 1024912 by jacopods:

bigLock is gone again; KServiceTrader should be now thread-safe also in branch (thanks pinotree)
CCBUG: 192536


 M  +0 -5      servicerunner.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1024912
Comment 29 Jacopo De Simoi 2009-09-17 17:00:20 UTC
*** Bug 207689 has been marked as a duplicate of this bug. ***
Comment 30 Pino Toscano 2009-09-20 23:49:42 UTC
*** Bug 193822 has been marked as a duplicate of this bug. ***
Comment 31 Dario Andres 2009-09-26 15:45:55 UTC
*** Bug 208577 has been marked as a duplicate of this bug. ***
Comment 32 Dario Andres 2009-09-28 00:26:42 UTC
*** Bug 208718 has been marked as a duplicate of this bug. ***
Comment 33 Dario Andres 2009-09-29 03:44:25 UTC
*** Bug 208800 has been marked as a duplicate of this bug. ***
Comment 34 Dario Andres 2009-10-02 00:05:58 UTC
*** Bug 209086 has been marked as a duplicate of this bug. ***
Comment 35 Dario Andres 2009-10-03 21:54:50 UTC
*** Bug 209335 has been marked as a duplicate of this bug. ***
Comment 36 Dario Andres 2009-10-11 20:59:27 UTC
*** Bug 210230 has been marked as a duplicate of this bug. ***
Comment 37 Dario Andres 2009-10-21 03:23:11 UTC
*** Bug 211266 has been marked as a duplicate of this bug. ***
Comment 38 Dario Andres 2009-11-04 01:41:43 UTC
*** Bug 212999 has been marked as a duplicate of this bug. ***
Comment 39 Dario Andres 2009-11-04 17:05:12 UTC
*** Bug 213092 has been marked as a duplicate of this bug. ***
Comment 40 anton 2010-03-17 22:33:30 UTC
I'm not sure if my issue is the exact duplicate of this one, but I use kde 4.4.1 and krunner often crash (not always, but rather often) after calculating simple math expression - like "=36*3" - shows result and crash almost immediately after that or the result does not show up - just crash during typing.
Comment 41 Pino Toscano 2010-03-17 22:40:06 UTC
(In reply to comment #40)
> I'm not sure if my issue is the exact duplicate of this one, but I use kde
> 4.4.1 and krunner often crash (not always, but rather often) after calculating
> simple math expression - like "=36*3" - shows result and crash almost
> immediately after that or the result does not show up - just crash during
> typing.

Calculator runner was not affected by this bug; please open a new bug report (with proper backtraces and clear steps).