Bug 303831

Summary: Krunner crashes when spell runner invoked
Product: [Plasma] krunner Reporter: Roger Pixley <skreech2>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.9.3

Description Roger Pixley 2012-07-20 03:05:46 UTC
Application: krunner (0.1)
KDE Platform Version: 4.8.90 (4.8.90)
Qt Version: 4.8.1
Operating System: Linux 3.2.0-26-generic-pae i686
Distribution: Ubuntu 12.04 LTS

-- Information about the crash:
- What I was doing when the application crashed:
Invoking the spell runner with the spell keyword and doing a word longer than 5 letters crashes krunner. 
- Custom settings of the application:
Spell runner enabled with the aspell library

The crash can be reproduced every time.

-- Backtrace:
Application: Run Command Interface (krunner), signal: Segmentation fault
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0xafe1e740 (LWP 25744))]

Thread 15 (Thread 0xad81db40 (LWP 25745)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb75f5380 in poll () from /lib/i386-linux-gnu/libc.so.6
#2  0xb2da5a7b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb2d980ae in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb2d98201 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb5c9f8e7 in QEventDispatcherGlib::processEvents (this=0xacf00468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0xb5c6b50d in QEventLoop::processEvents (this=0xad81d240, flags=...) at kernel/qeventloop.cpp:149
#7  0xb5c6b7a9 in QEventLoop::exec (this=0xad81d240, flags=...) at kernel/qeventloop.cpp:204
#8  0xb5b5494c in QThread::exec (this=0x86872d8) at thread/qthread.cpp:501
#9  0xb5c48b5d in QInotifyFileSystemWatcherEngine::run (this=0x86872d8) at io/qfilesystemwatcher_inotify.cpp:248
#10 0xb5b57de0 in QThreadPrivate::start (arg=0x86872d8) at thread/qthread_unix.cpp:298
#11 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#12 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 14 (Thread 0xa6fcab40 (LWP 25752)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb75f5380 in poll () from /lib/i386-linux-gnu/libc.so.6
#2  0xb2da5a7b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb2d980ae in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb2d98201 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb5c9f8e7 in QEventDispatcherGlib::processEvents (this=0xa6600468, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0xb5c6b50d in QEventLoop::processEvents (this=0xa6fca240, flags=...) at kernel/qeventloop.cpp:149
#7  0xb5c6b7a9 in QEventLoop::exec (this=0xa6fca240, flags=...) at kernel/qeventloop.cpp:204
#8  0xb5b5494c in QThread::exec (this=0x8953cf8) at thread/qthread.cpp:501
#9  0xb5c48b5d in QInotifyFileSystemWatcherEngine::run (this=0x8953cf8) at io/qfilesystemwatcher_inotify.cpp:248
#10 0xb5b57de0 in QThreadPrivate::start (arg=0x8953cf8) at thread/qthread_unix.cpp:298
#11 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#12 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 13 (Thread 0xa65ffb40 (LWP 25753)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb2e6d96b in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb76113dc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb5b58350 in wait (time=4294967295, this=0x86c8678) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x8692870, mutex=0x86b7818, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb34a1acc in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8692858, th=0x894e700) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#6  0xb34a495b in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x86bb0d0, th=0x894e700) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#7  0xb34a163a in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8692858, th=0x894e700) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#8  0xb34a4a5c in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x894e700) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#9  0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x894e700, previous=0x89333b0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#10 0xb34a34e4 in ThreadWeaver::ThreadRunHelper::run (this=0xa65ff2a4, parent=0x8692858, th=0x894e700) at ../../../threadweaver/Weaver/Thread.cpp:87
#11 0xb34a359a in ThreadWeaver::Thread::run (this=0x894e700) at ../../../threadweaver/Weaver/Thread.cpp:142
#12 0xb5b57de0 in QThreadPrivate::start (arg=0x894e700) at thread/qthread_unix.cpp:298
#13 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#14 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 12 (Thread 0xa5bfeb40 (LWP 25754)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb2e6d96b in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb76113dc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb5b58350 in wait (time=4294967295, this=0x86c8678) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x8692870, mutex=0x86b7818, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb34a1acc in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8692858, th=0x89596a0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#6  0xb34a495b in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x86bb0d0, th=0x89596a0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#7  0xb34a163a in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8692858, th=0x89596a0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#8  0xb34a4a5c in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x89596a0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#9  0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x89596a0, previous=0x8d2c2d8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#10 0xb34a34e4 in ThreadWeaver::ThreadRunHelper::run (this=0xa5bfe2a4, parent=0x8692858, th=0x89596a0) at ../../../threadweaver/Weaver/Thread.cpp:87
#11 0xb34a359a in ThreadWeaver::Thread::run (this=0x89596a0) at ../../../threadweaver/Weaver/Thread.cpp:142
#12 0xb5b57de0 in QThreadPrivate::start (arg=0x89596a0) at thread/qthread_unix.cpp:298
#13 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#14 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 11 (Thread 0xa51fdb40 (LWP 25755)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb2e6d96b in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb76113dc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb5b58350 in wait (time=4294967295, this=0x86c8678) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x8692870, mutex=0x86b7818, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb34a1acc in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8692858, th=0x894aa88) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#6  0xb34a495b in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x86bb0d0, th=0x894aa88) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#7  0xb34a163a in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8692858, th=0x894aa88) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#8  0xb34a4a5c in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x894aa88) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#9  0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x894aa88, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#10 0xb34a4a78 in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x894aa88) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#11 0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x894aa88, previous=0x8569688) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#12 0xb34a34e4 in ThreadWeaver::ThreadRunHelper::run (this=0xa51fd2a4, parent=0x8692858, th=0x894aa88) at ../../../threadweaver/Weaver/Thread.cpp:87
#13 0xb34a359a in ThreadWeaver::Thread::run (this=0x894aa88) at ../../../threadweaver/Weaver/Thread.cpp:142
#14 0xb5b57de0 in QThreadPrivate::start (arg=0x894aa88) at thread/qthread_unix.cpp:298
#15 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#16 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 10 (Thread 0xa47fcb40 (LWP 25756)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb2e6d96b in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb76113dc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb5b58350 in wait (time=4294967295, this=0x86c8678) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x8692870, mutex=0x86b7818, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb34a1acc in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8692858, th=0x8d6dca8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#6  0xb34a495b in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x86bb0d0, th=0x8d6dca8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#7  0xb34a163a in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8692858, th=0x8d6dca8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#8  0xb34a4a5c in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x8d6dca8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#9  0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x8d6dca8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#10 0xb34a4a78 in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x8d6dca8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#11 0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x8d6dca8, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#12 0xb34a4a78 in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x8d6dca8) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#13 0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x8d6dca8, previous=0x89cd9e8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#14 0xb34a34e4 in ThreadWeaver::ThreadRunHelper::run (this=0xa47fc2a4, parent=0x8692858, th=0x8d6dca8) at ../../../threadweaver/Weaver/Thread.cpp:87
#15 0xb34a359a in ThreadWeaver::Thread::run (this=0x8d6dca8) at ../../../threadweaver/Weaver/Thread.cpp:142
#16 0xb5b57de0 in QThreadPrivate::start (arg=0x8d6dca8) at thread/qthread_unix.cpp:298
#17 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#18 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 9 (Thread 0xa3dffb40 (LWP 25757)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb2e6d96b in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb76113dc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb5b58350 in wait (time=4294967295, this=0x86c8678) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x8692870, mutex=0x86b7818, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb34a1acc in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8692858, th=0x892f4b0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#6  0xb34a495b in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x86bb0d0, th=0x892f4b0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#7  0xb34a163a in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8692858, th=0x892f4b0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#8  0xb34a4a5c in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x892f4b0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#9  0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x892f4b0, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#10 0xb34a4a78 in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x892f4b0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#11 0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x892f4b0, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#12 0xb34a4a78 in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x892f4b0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#13 0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x892f4b0, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#14 0xb34a4a78 in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x892f4b0) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#15 0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x892f4b0, previous=0x8edb1f0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#16 0xb34a34e4 in ThreadWeaver::ThreadRunHelper::run (this=0xa3dff2a4, parent=0x8692858, th=0x892f4b0) at ../../../threadweaver/Weaver/Thread.cpp:87
#17 0xb34a359a in ThreadWeaver::Thread::run (this=0x892f4b0) at ../../../threadweaver/Weaver/Thread.cpp:142
#18 0xb5b57de0 in QThreadPrivate::start (arg=0x892f4b0) at thread/qthread_unix.cpp:298
#19 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#20 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 8 (Thread 0xa33ffb40 (LWP 25758)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb2e6d96b in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb76113dc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb5b58350 in wait (time=4294967295, this=0x86c8678) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x8692870, mutex=0x86b7818, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb34a1acc in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8692858, th=0x8d1c190) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#6  0xb34a495b in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x86bb0d0, th=0x8d1c190) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#7  0xb34a163a in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8692858, th=0x8d1c190) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#8  0xb34a4a5c in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x8d1c190) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#9  0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x8d1c190, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#10 0xb34a4a78 in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x8d1c190) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#11 0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x8d1c190, previous=0x89bf6e8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#12 0xb34a34e4 in ThreadWeaver::ThreadRunHelper::run (this=0xa33ff2a4, parent=0x8692858, th=0x8d1c190) at ../../../threadweaver/Weaver/Thread.cpp:87
#13 0xb34a359a in ThreadWeaver::Thread::run (this=0x8d1c190) at ../../../threadweaver/Weaver/Thread.cpp:142
#14 0xb5b57de0 in QThreadPrivate::start (arg=0x8d1c190) at thread/qthread_unix.cpp:298
#15 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#16 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 7 (Thread 0xa2bfeb40 (LWP 25759)):
[KCrash Handler]
#7  phonet (inword=0xa2bfd3fc "LUXURIATION", target=0xa2bfd58c "LNN", len=11, parms=...) at phonet.cxx:100
#8  0xa7a21020 in SuggestMgr::ngsuggest (this=0xa201a058, wlst=0xa202eed0, w=0xa2bfdbdc "oppurtunit", ns=0, pHMgr=0xa200d264, md=1) at suggestmgr.cxx:1112
#9  0xa7a19e06 in Hunspell::suggest (this=0xa200d260, slst=0xa2bfde50, word=<optimized out>) at hunspell.cxx:872
#10 0xa7b598fc in MySpellChecker::suggestWord(char const*, unsigned int, unsigned int*) () from /usr/lib/enchant/libenchant_myspell.so
#11 0xa7b59a85 in ?? () from /usr/lib/enchant/libenchant_myspell.so
#12 0xa7b4ab30 in enchant_dict_suggest () from /usr/lib/libenchant.so.1
#13 0xa7b6c7d1 in QSpellEnchantDict::suggest (this=0xa202ea30, word=...) at ../../../../sonnet/plugins/enchant/enchantdict.cpp:63
#14 0xb5f554b8 in checkAndSuggest (suggestions=..., word=..., this=0xa202ea30) at ../../kdecore/sonnet/spellerplugin.cpp:58
#15 Sonnet::SpellerPlugin::checkAndSuggest (this=0xa202ea30, word=..., suggestions=...) at ../../kdecore/sonnet/spellerplugin.cpp:53
#16 0xb5f559b6 in Sonnet::Speller::checkAndSuggest (this=0x89bcf48, word=..., suggestions=...) at ../../kdecore/sonnet/speller.cpp:134
#17 0xa7b74e66 in match (context=..., this=0x89bcf30) at ../../../runners/spellchecker/spellcheck.cpp:134
#18 SpellCheckRunner::match (this=0x89bcf30, context=...) at ../../../runners/spellchecker/spellcheck.cpp:76
#19 0xb721e568 in Plasma::AbstractRunner::performMatch (this=0x89bcf30, localContext=...) at ../../plasma/abstractrunner.cpp:136
#20 0xb72ca07c in run (this=0x895d948) at ../../plasma/private/runnerjobs.cpp:159
#21 Plasma::FindMatchesJob::run (this=0x895d948) at ../../plasma/private/runnerjobs.cpp:154
#22 0xb34a3f03 in ThreadWeaver::JobRunHelper::runTheJob (this=0xa2bfe21c, th=0x870fde0, job=0x895d948) at ../../../threadweaver/Weaver/Job.cpp:106
#23 0xb34a40a3 in ThreadWeaver::Job::execute (this=0x895d948, th=0x870fde0) at ../../../threadweaver/Weaver/Job.cpp:135
#24 0xb34a34b2 in ThreadWeaver::ThreadRunHelper::run (this=0xa2bfe2a4, parent=0x8692858, th=0x870fde0) at ../../../threadweaver/Weaver/Thread.cpp:95
#25 0xb34a359a in ThreadWeaver::Thread::run (this=0x870fde0) at ../../../threadweaver/Weaver/Thread.cpp:142
#26 0xb5b57de0 in QThreadPrivate::start (arg=0x870fde0) at thread/qthread_unix.cpp:298
#27 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#28 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 6 (Thread 0xa1ffdb40 (LWP 25760)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb2e6d96b in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb76113dc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb5b58350 in wait (time=4294967295, this=0x86c8678) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x8692870, mutex=0x86b7818, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb34a1acc in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8692858, th=0x8945838) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#6  0xb34a495b in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x86bb0d0, th=0x8945838) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#7  0xb34a163a in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8692858, th=0x8945838) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#8  0xb34a4a5c in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x8945838) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#9  0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x8945838, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#10 0xb34a4a78 in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x8945838) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#11 0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x8945838, previous=0x88a2750) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#12 0xb34a34e4 in ThreadWeaver::ThreadRunHelper::run (this=0xa1ffd2a4, parent=0x8692858, th=0x8945838) at ../../../threadweaver/Weaver/Thread.cpp:87
#13 0xb34a359a in ThreadWeaver::Thread::run (this=0x8945838) at ../../../threadweaver/Weaver/Thread.cpp:142
#14 0xb5b57de0 in QThreadPrivate::start (arg=0x8945838) at thread/qthread_unix.cpp:298
#15 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#16 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 5 (Thread 0xa17fcb40 (LWP 25761)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb2e6d96b in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb76113dc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb5b58350 in wait (time=4294967295, this=0x86c8678) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x8692870, mutex=0x86b7818, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb34a1acc in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8692858, th=0x86fe268) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#6  0xb34a495b in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x86bb0d0, th=0x86fe268) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#7  0xb34a163a in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8692858, th=0x86fe268) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#8  0xb34a4a5c in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x86fe268) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#9  0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x86fe268, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#10 0xb34a4a78 in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x86fe268) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#11 0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x86fe268, previous=0x8ede3c0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#12 0xb34a34e4 in ThreadWeaver::ThreadRunHelper::run (this=0xa17fc2a4, parent=0x8692858, th=0x86fe268) at ../../../threadweaver/Weaver/Thread.cpp:87
#13 0xb34a359a in ThreadWeaver::Thread::run (this=0x86fe268) at ../../../threadweaver/Weaver/Thread.cpp:142
#14 0xb5b57de0 in QThreadPrivate::start (arg=0x86fe268) at thread/qthread_unix.cpp:298
#15 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#16 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 4 (Thread 0xa0bffb40 (LWP 25762)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb2e6d96b in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb76113dc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb5b58350 in wait (time=4294967295, this=0x86c8678) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x8692870, mutex=0x86b7818, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb34a1acc in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8692858, th=0x8970120) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#6  0xb34a495b in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x86bb0d0, th=0x8970120) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#7  0xb34a163a in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8692858, th=0x8970120) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#8  0xb34a4a5c in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x8970120) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#9  0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x8970120, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#10 0xb34a4a78 in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x8970120) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#11 0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x8970120, previous=0x8911170) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#12 0xb34a34e4 in ThreadWeaver::ThreadRunHelper::run (this=0xa0bff2a4, parent=0x8692858, th=0x8970120) at ../../../threadweaver/Weaver/Thread.cpp:87
#13 0xb34a359a in ThreadWeaver::Thread::run (this=0x8970120) at ../../../threadweaver/Weaver/Thread.cpp:142
#14 0xb5b57de0 in QThreadPrivate::start (arg=0x8970120) at thread/qthread_unix.cpp:298
#15 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#16 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 3 (Thread 0xa03feb40 (LWP 25763)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb2e6d96b in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb76113dc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb5b58350 in wait (time=4294967295, this=0x86c8678) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x8692870, mutex=0x86b7818, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb34a1acc in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8692858, th=0x88c7270) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#6  0xb34a495b in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x86bb0d0, th=0x88c7270) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#7  0xb34a163a in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8692858, th=0x88c7270) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#8  0xb34a4a5c in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x88c7270) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#9  0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x88c7270, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#10 0xb34a4a78 in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x88c7270) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#11 0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x88c7270, previous=0x8e22d40) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#12 0xb34a34e4 in ThreadWeaver::ThreadRunHelper::run (this=0xa03fe2a4, parent=0x8692858, th=0x88c7270) at ../../../threadweaver/Weaver/Thread.cpp:87
#13 0xb34a359a in ThreadWeaver::Thread::run (this=0x88c7270) at ../../../threadweaver/Weaver/Thread.cpp:142
#14 0xb5b57de0 in QThreadPrivate::start (arg=0x88c7270) at thread/qthread_unix.cpp:298
#15 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#16 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 2 (Thread 0x9fbfdb40 (LWP 25764)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb2e6d96b in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/i386-linux-gnu/libpthread.so.0
#2  0xb76113dc in pthread_cond_wait () from /lib/i386-linux-gnu/libc.so.6
#3  0xb5b58350 in wait (time=4294967295, this=0x86c8678) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x8692870, mutex=0x86b7818, time=4294967295) at thread/qwaitcondition_unix.cpp:158
#5  0xb34a1acc in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8692858, th=0x88e6828) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#6  0xb34a495b in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x86bb0d0, th=0x88e6828) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#7  0xb34a163a in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8692858, th=0x88e6828) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#8  0xb34a4a5c in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x88e6828) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#9  0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x88e6828, previous=0x0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#10 0xb34a4a78 in ThreadWeaver::WorkingHardState::applyForWork (this=0x86bb0d0, th=0x88e6828) at ../../../threadweaver/Weaver/WorkingHardState.cpp:74
#11 0xb34a1533 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8692858, th=0x88e6828, previous=0x8edf6d8) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#12 0xb34a34e4 in ThreadWeaver::ThreadRunHelper::run (this=0x9fbfd2a4, parent=0x8692858, th=0x88e6828) at ../../../threadweaver/Weaver/Thread.cpp:87
#13 0xb34a359a in ThreadWeaver::Thread::run (this=0x88e6828) at ../../../threadweaver/Weaver/Thread.cpp:142
#14 0xb5b57de0 in QThreadPrivate::start (arg=0x88e6828) at thread/qthread_unix.cpp:298
#15 0xb2e69d4c in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#16 0xb7603ace in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 1 (Thread 0xafe1e740 (LWP 25744)):
#0  0xb7725424 in __kernel_vsyscall ()
#1  0xb75f317b in read () from /lib/i386-linux-gnu/libc.so.6
#2  0xb2dd66ae in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0xb2d97bd2 in g_main_context_check () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0xb2d98042 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0xb2d98201 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#6  0xb5c9f887 in QEventDispatcherGlib::processEvents (this=0x8504eb8, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#7  0xb6292aaa in QGuiEventDispatcherGlib::processEvents (this=0x8504eb8, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#8  0xb5c6b50d in QEventLoop::processEvents (this=0xbffb52a4, flags=...) at kernel/qeventloop.cpp:149
#9  0xb5c6b7a9 in QEventLoop::exec (this=0xbffb52a4, flags=...) at kernel/qeventloop.cpp:204
#10 0xb5c70eba in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#11 0xb61d7a74 in QApplication::exec () at kernel/qapplication.cpp:3820
#12 0xb76f45c6 in kdemain (argc=1, argv=0xbffb5454) at ../../krunner/main.cpp:66
#13 0x0804850b in main (argc=1, argv=0xbffb5454) at krunner_dummy.cpp:3

Reported using DrKonqi
Comment 1 Simeon Bird 2012-10-26 23:29:05 UTC
Git commit 124e35885b8cd1b593b7b83a070bd0bdb5758661 by Simeon Bird.
Committed on 20/10/2012 at 03:16.
Pushed by sbird into branch 'KDE/4.9'.

Fix the plasma spellchecker's 'foreign language' support.
Previously this caused segfaults (even if not used) because
it called setLanguage(), which is not thread-safe, in match().

Instead, this patch constructs a new speller safely for each new
language, without deleting the old one. Old spellers are instead
deleted on the teardown() signal.

While we're at it, amend the language detection so that the user
can type natural language names (eg, 'german') and have the
spell-checker find the right language.

REVIEW: 106244
Related: bug 264779
FIXED-IN: 4.9.3

M  +121  -37   runners/spellchecker/spellcheck.cpp
M  +8    -2    runners/spellchecker/spellcheck.h

http://commits.kde.org/kdeplasma-addons/124e35885b8cd1b593b7b83a070bd0bdb5758661