Bug 128488 - konsole takes 100% cpu on printing tab-completionlist in bash
Summary: konsole takes 100% cpu on printing tab-completionlist in bash
Status: RESOLVED FIXED
Alias: None
Product: konsole
Classification: Applications
Component: general (show other bugs)
Version: 1.6.3
Platform: unspecified Linux
: NOR normal
Target Milestone: ---
Assignee: Dirk Mueller
URL:
Keywords:
: 128862 (view as bug list)
Depends on:
Blocks:
 
Reported: 2006-06-02 12:56 UTC by Thomas Zander
Modified: 2006-06-22 14:13 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
patch (821 bytes, patch)
2006-06-02 14:08 UTC, Dirk Mueller
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Zander 2006-06-02 12:56:54 UTC
Version:           1.6.3 (using KDE 3.5.3, compiled sources)
Compiler:          Target: x86_64-linux-gnu
OS:                Linux (x86_64) release 2.6.13.2

I can reproduce this consistently since this morning (I recompiled last night; I'm at r547493).

start a screen
type  'cd k[tab][tab]'
in a dir where there are multiple dirs starting with a k.
This would normally print a tab-completion list, but now it just eats 100% CPU.

Attaching with gdb and doing regular bt-s I see this consistently re-appear:

#4  0x00002aaaaedadac9 in TEmulation::onRcvBlock () from /usr/local/kde/lib/libkdeinit_konsole.so
#5  0x00002aaaaed9c5ea in TESession::onRcvBlock () from /usr/local/kde/lib/libkdeinit_konsole.so
#6  0x00002aaaaed9c7e0 in TESession::qt_invoke () from /usr/local/kde/lib/libkdeinit_konsole.so
#7  0x00002aaaac71e628 in QObject::activate_signal () from /usr/local/kde/qt/lib/libqt-mt.so.3
#8  0x00002aaaaed6f905 in TEPty::block_in () from /usr/local/kde/lib/libkdeinit_konsole.so
#9  0x00002aaaaed703f6 in TEPty::qt_invoke () from /usr/local/kde/lib/libkdeinit_konsole.so
#10 0x00002aaaac71e628 in QObject::activate_signal () from /usr/local/kde/qt/lib/libqt-mt.so.3
#11 0x00002aaaaba7f444 in KProcess::receivedStdout () from /usr/local/kde/lib/libkdecore.so.4
#12 0x00002aaaaba7f61e in KProcess::childOutput () from /usr/local/kde/lib/libkdecore.so.4
#13 0x00002aaaaba7f629 in KProcess::slotChildOutput () from /usr/local/kde/lib/libkdecore.so.4
#14 0x00002aaaaba81a9e in KProcess::qt_invoke () from /usr/local/kde/lib/libkdecore.so.4
#15 0x00002aaaaed7038d in TEPty::qt_invoke () from /usr/local/kde/lib/libkdeinit_konsole.so
#16 0x00002aaaac71e628 in QObject::activate_signal () from /usr/local/kde/qt/lib/libqt-mt.so.3
#17 0x00002aaaac71eb94 in QObject::activate_signal () from /usr/local/kde/qt/lib/libqt-mt.so.3
#18 0x00002aaaac739acb in QSocketNotifier::event () from /usr/local/kde/qt/lib/libqt-mt.so.3
#19 0x00002aaaac6c8973 in QApplication::internalNotify () from /usr/local/kde/qt/lib/libqt-mt.so.3
#20 0x00002aaaac6c9340 in QApplication::notify () from /usr/local/kde/qt/lib/libqt-mt.so.3
#21 0x00002aaaaba3bfee in KApplication::notify () from /usr/local/kde/lib/libkdecore.so.4
#22 0x00002aaaac6bddf0 in QEventLoop::activateSocketNotifiers ()
   from /usr/local/kde/qt/lib/libqt-mt.so.3
#23 0x00002aaaac67e76e in QEventLoop::processEvents () from /usr/local/kde/qt/lib/libqt-mt.so.3
#24 0x00002aaaac6dd468 in QEventLoop::enterLoop () from /usr/local/kde/qt/lib/libqt-mt.so.3
#25 0x00002aaaac6dd382 in QEventLoop::exec () from /usr/local/kde/qt/lib/libqt-mt.so.3
#26 0x00002aaaaed74ad7 in kdemain () from /usr/local/kde/lib/libkdeinit_konsole.so
#27 0x0000000000407249 in launch ()
#28 0x0000000000407a12 in handle_launcher_request ()
#29 0x0000000000408091 in handle_requests ()
#30 0x0000000000409192 in main ()
Comment 1 Thomas Zander 2006-06-02 13:21:21 UTC
cd /home/zander/sources/kde/kdebase/konsole/konsole
zander@dust:konsole$svn up -r "{20060516}"
U    konsole_part.h
U    konsole.h
U    session.cpp
U    konsole_part.cpp
U    konsole.cpp
U    TEmulation.cpp
U    session.h
Updated to revision 541310.

After a make / install, problem goes away.
Comment 2 Thomas Zander 2006-06-02 13:35:33 UTC
Ok, a couple more svn ups and I see that r546271 is the responsible commit.
Comment 3 Dirk Mueller 2006-06-02 14:08:50 UTC
Created attachment 16430 [details]
patch

can you try if this patch fixes it?
Comment 4 Dirk Mueller 2006-06-02 14:29:58 UTC
SVN commit 547516 by mueller:

the latin-1 decoder is a bit broken
BUG:128488 


 M  +1 -2      TEmulation.cpp  


--- branches/KDE/3.5/kdebase/konsole/konsole/TEmulation.cpp #547515:547516
@@ -313,10 +313,9 @@
          QString tmp;
          // Flush decoder
          while(!tmp.length())
-             tmp = decoder->toUnicode(&s[i],1);
+             tmp = decoder->toUnicode(" ",1);
        }
 
-
        onRcvChar((unsigned char) s[i]);
 
        if (s[i] == '\030' && (len-i-1 > 3) && (strncmp(s+i+1, "B00", 3) == 0))
Comment 5 Kurt Hindenburg 2006-06-09 15:54:28 UTC
*** Bug 128862 has been marked as a duplicate of this bug. ***
Comment 6 Bernhard Rosenkraenzer 2006-06-22 14:04:55 UTC
Still reproducable here with SVN 552682.

Easier way to reproduce: Just launch screen and press backspace. The bug occurs when screen tries to do its "flash the screen to get the user's attention" thing, which happens any time the shell wants to beep.
Comment 7 Bernhard Rosenkraenzer 2006-06-22 14:13:17 UTC
Actually I'm an idiot, I built a package of containing the fix from SVN and then forgot to install it on my box. It _is_ fixed.