Bug 198692

Summary: klauncher crashes with segfault
Product: [Plasma] krunner Reporter: Romário Rios <luizromario>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED DUPLICATE    
Severity: crash CC: andresbajotierra
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Romário Rios 2009-07-02 21:28:34 UTC
Application that crashed: krunner
Version of the application: 0.1
KDE Version: 4.2.95 (KDE 4.2.95 (KDE 4.3 RC1))
Qt Version: 4.5.0
Operating System: Linux 2.6.28-13-generic x86_64
Distribution: Ubuntu 9.04

 -- Backtrace:
Application: Interface de execução de comandos (kdeinit4), signal: Segmentation fault
[Current thread is 0 (LWP 22126)]

Thread 5 (Thread 0x7fb70897c950 (LWP 23419)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fb72ac0b939 in QWaitCondition::wait (this=0x115a748, mutex=0x1155210, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007fb720b615e4 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x115a720, th=0xfc9190) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007fb720b63d93 in ThreadWeaver::WorkingHardState::applyForWork (this=0x11551a0, th=0xfc9190) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007fb720b63dac in ThreadWeaver::WorkingHardState::applyForWork (this=0x11551a0, th=0xfc9190) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WorkingHardState.cpp:74
#5  0x00007fb720b63dac in ThreadWeaver::WorkingHardState::applyForWork (this=0x11551a0, th=0xfc9190) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007fb720b6230f in ThreadWeaver::ThreadRunHelper::run (this=0x7fb70897c060, parent=0x115a720, th=0xfc9190) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/Thread.cpp:87
#7  0x00007fb720b62769 in ThreadWeaver::Thread::run (this=0xfc9190) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/Thread.cpp:142
#8  0x00007fb72ac0a952 in QThreadPrivate::start (arg=0xfc9190) at thread/qthread_unix.cpp:189
#9  0x00007fb726a8c3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#10 0x00007fb727670fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fb70817b950 (LWP 23420)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fb72ac0b939 in QWaitCondition::wait (this=0x115a748, mutex=0x1155210, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007fb720b615e4 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x115a720, th=0x11803b0) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007fb720b63d93 in ThreadWeaver::WorkingHardState::applyForWork (this=0x11551a0, th=0x11803b0) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007fb720b63dac in ThreadWeaver::WorkingHardState::applyForWork (this=0x11551a0, th=0x11803b0) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WorkingHardState.cpp:74
#5  0x00007fb720b63dac in ThreadWeaver::WorkingHardState::applyForWork (this=0x11551a0, th=0x11803b0) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007fb720b6230f in ThreadWeaver::ThreadRunHelper::run (this=0x7fb70817b060, parent=0x115a720, th=0x11803b0) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/Thread.cpp:87
#7  0x00007fb720b62769 in ThreadWeaver::Thread::run (this=0x11803b0) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/Thread.cpp:142
#8  0x00007fb72ac0a952 in QThreadPrivate::start (arg=0x11803b0) at thread/qthread_unix.cpp:189
#9  0x00007fb726a8c3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#10 0x00007fb727670fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fb70797a950 (LWP 23421)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fb72ac0b939 in QWaitCondition::wait (this=0x115a748, mutex=0x1155210, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007fb720b615e4 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x115a720, th=0x1164ad0) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007fb720b63d93 in ThreadWeaver::WorkingHardState::applyForWork (this=0x11551a0, th=0x1164ad0) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007fb720b6230f in ThreadWeaver::ThreadRunHelper::run (this=0x7fb70797a060, parent=0x115a720, th=0x1164ad0) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/Thread.cpp:87
#5  0x00007fb720b62769 in ThreadWeaver::Thread::run (this=0x1164ad0) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/Thread.cpp:142
#6  0x00007fb72ac0a952 in QThreadPrivate::start (arg=0x1164ad0) at thread/qthread_unix.cpp:189
#7  0x00007fb726a8c3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#8  0x00007fb727670fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#9  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fb707179950 (LWP 23422)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:261
#1  0x00007fb72ac0b939 in QWaitCondition::wait (this=0x115a748, mutex=0x1155210, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007fb720b615e4 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x115a720, th=0x1167990) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007fb720b63d93 in ThreadWeaver::WorkingHardState::applyForWork (this=0x11551a0, th=0x1167990) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007fb720b63dac in ThreadWeaver::WorkingHardState::applyForWork (this=0x11551a0, th=0x1167990) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WorkingHardState.cpp:74
#5  0x00007fb720b63dac in ThreadWeaver::WorkingHardState::applyForWork (this=0x11551a0, th=0x1167990) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007fb720b6230f in ThreadWeaver::ThreadRunHelper::run (this=0x7fb707179060, parent=0x115a720, th=0x1167990) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/Thread.cpp:87
#7  0x00007fb720b62769 in ThreadWeaver::Thread::run (this=0x1167990) at /build/buildd/kde4libs-4.2.95/threadweaver/Weaver/Thread.cpp:142
#8  0x00007fb72ac0a952 in QThreadPrivate::start (arg=0x1167990) at thread/qthread_unix.cpp:189
#9  0x00007fb726a8c3ba in start_thread (arg=<value optimized out>) at pthread_create.c:297
#10 0x00007fb727670fcd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fb72b1cd750 (LWP 22126)):
[KCrash Handler]
#5  QString::operator== (this=<value optimized out>, other=@0x7fff33208200) at ../../include/QtCore/../../src/corelib/tools/qstring.h:104
#6  0x00007fb729e4f607 in KDirWatchPrivate::inotifyEventReceived (this=0x114f1f0) at /build/buildd/kde4libs-4.2.95/kio/kio/kdirwatch.cpp:298
#7  0x00007fb729e51858 in KDirWatchPrivate::qt_metacall (this=0x114f1f0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff33209430)
    at /build/buildd/kde4libs-4.2.95/obj-x86_64-linux-gnu/kio/kdirwatch_p.moc:75
#8  0x00007fb72ad091f2 in QMetaObject::activate (sender=0x10f8da0, from_signal_index=<value optimized out>, to_signal_index=4, argv=0x70006f) at kernel/qobject.cpp:3069
#9  0x00007fb72ad4044e in QSocketNotifier::activated (this=0x0, _t1=11) at .moc/release-shared/moc_qsocketnotifier.cpp:83
#10 0x00007fb72ad0de53 in QSocketNotifier::event (this=0x10f8da0, e=0x7fff33209a00) at kernel/qsocketnotifier.cpp:316
#11 0x00007fb72827d78d in QApplicationPrivate::notify_helper (this=0xf76a60, receiver=0x10f8da0, e=0x7fff33209a00) at kernel/qapplication.cpp:4084
#12 0x00007fb72828597a in QApplication::notify (this=0xf765a0, receiver=0x10f8da0, e=0x7fff33209a00) at kernel/qapplication.cpp:4049
#13 0x00007fb7293c062b in KApplication::notify (this=0xf765a0, receiver=0x10f8da0, event=0x7fff33209a00) at /build/buildd/kde4libs-4.2.95/kdeui/kernel/kapplication.cpp:302
#14 0x00007fb72acf375c in QCoreApplication::notifyInternal (this=0xf765a0, receiver=0x10f8da0, event=0x7fff33209a00) at kernel/qcoreapplication.cpp:602
#15 0x00007fb72ad1d0e9 in socketNotifierSourceDispatch (source=0xf7a250) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#16 0x00007fb726cdb20a in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#17 0x00007fb726cde8e0 in ?? () from /usr/lib/libglib-2.0.so.0
#18 0x00007fb726cdea7c in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#19 0x00007fb72ad1ce6f in QEventDispatcherGlib::processEvents (this=0xee9cb0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:323
#20 0x00007fb728315bef in QGuiEventDispatcherGlib::processEvents (this=0x0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:202
#21 0x00007fb72acf2002 in QEventLoop::processEvents (this=<value optimized out>, flags={i = 857775136}) at kernel/qeventloop.cpp:149
#22 0x00007fb72acf23cd in QEventLoop::exec (this=0x7fff33209c60, flags={i = 857775216}) at kernel/qeventloop.cpp:200
#23 0x00007fb72acf4694 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:880
#24 0x00007fb71ebc43b4 in kdemain () from /usr/lib/libkdeinit4_krunner.so
#25 0x000000000040714e in launch (argc=1, _name=0xf1f188 "/usr/bin/krunner", args=<value optimized out>, cwd=0x0, envc=0, envs=0xf1f1a1 "", reset_env=false, tty=0x0, avoid_loops=false, 
    startup_id_str=0x40a309 "0") at /build/buildd/kde4libs-4.2.95/kinit/kinit.cpp:672
#26 0x0000000000407978 in handle_launcher_request (sock=7, who=<value optimized out>) at /build/buildd/kde4libs-4.2.95/kinit/kinit.cpp:1164
#27 0x0000000000407f25 in handle_requests (waitForPid=0) at /build/buildd/kde4libs-4.2.95/kinit/kinit.cpp:1357
#28 0x0000000000408a66 in main (argc=2, argv=0x7fff3320aaa8, envp=0x7fff3320aac0) at /build/buildd/kde4libs-4.2.95/kinit/kinit.cpp:1784

Reported using DrKonqi
Comment 1 Dario Andres 2009-07-07 12:59:13 UTC
This looks like the old bug 165548
Can you reproduce the crash at will? Thanks
Comment 2 Christoph Feck 2009-12-04 03:05:00 UTC
SVN commit 1058169 by cfeck:

Fix broken reading in inotifyEventReceived

Multiple bugs:
* MAX_PATH is 4096 on linux, but inotify_event needs some bytes as well
* the "pending" variable was incorrectly abused to mean both pending
    bytes in buffer as well as pending bytes in stream
* the offset was not reset to zero when the next chunk was reading
* when an event was larger than what was available in buffer, it was reading
    beyond the buffer boundaries

Many thanks to David for review and help with improving clarity of the code.

David, please test for regressions, maybe add a test which changes
some 1000 files in one go.

CCMAIL:faure@kde.org

CCBUG:165548
CCBUG:173696
CCBUG:175005
CCBUG:198692
CCBUG:204178


 M  +20 -9     kdirwatch.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1058169
Comment 3 Christoph Feck 2010-02-25 00:34:12 UTC

*** This bug has been marked as a duplicate of bug 165548 ***