Bug 155234

Summary: konsole exits on ASSERT: "endLine >= startLine && endLine < hist->getLines() + lines"
Product: [Applications] konsole Reporter: Pavel Volkovitskiy <olfway>
Component: generalAssignee: Konsole Developer <konsole-devel>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Pavel Volkovitskiy 2008-01-07 17:57:45 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
OS:                Linux

konsole(21910)/kdeui (KXmlGui) KXMLGUIFactory::removeClient: KXMLGUIFactory::removeServant, calling removeRecursive
konsole(21910)/kdeui (KXmlGui) KXMLGUIFactory::addClient: KXMLGUIFactory::addClient(  0x49cfc88  )
konsole(21910)/kdeui (KXmlGui) KXMLGUIFactory::removeClient: KXMLGUIFactory::removeClient(  0x49cfc88  )
konsole(21910)/kdeui (KXmlGui) KXMLGUIFactory::removeClient: KXMLGUIFactory::removeServant, calling removeRecursive
konsole(21910)/kdeui (KXmlGui) KXMLGUIFactory::addClient: KXMLGUIFactory::addClient(  0x4918a28  )
konsole(21910) Konsole::SSHProcessInfo::SSHProcessInfo: [username] and host:  "ora-1"
konsole(21910) Konsole::SSHProcessInfo::SSHProcessInfo: found only host:  "ora-1"
konsole(21910)/kdeui (KXmlGui) KXMLGUIFactory::removeClient: KXMLGUIFactory::removeClient(  0x57ed918  )
konsole(21910)/kdeui (KXmlGui) KXMLGUIFactory::addClient: KXMLGUIFactory::addClient(  0x57ed918  )
konsole(21910)/kdeui (KXmlGui) KXMLGUIFactory::addClient: KXMLGUIFactory::addClient(  0x6dedb28  )
konsole(21910)/kdeui (KNotification) KNotification::slotReceivedId: 2069
konsole(21910)/kdeui (KNotification) KNotificationManager::notificationClosed: 2069
konsole(21910)/kdeui (KNotification) KNotification::~KNotification: 2069
ASSERT: "endLine >= startLine && endLine < hist->getLines() + lines" in file /tmp/rmake/builds/kdebase4/kdebase4--kdebase/apps/konsole/src/Screen.cpp, line 602
konsole(21910) Konsole::SessionManager::setDefaultProfile: setting default session type to  "Shell.profile"

Program exited with code 01.
Comment 1 Robert Knight 2008-01-08 19:35:22 UTC
Hello Pavel,

Thanks for the report.  I have a few additional questions which should help in resolving this problem. 

1. What were you doing in Konsole when the crash occurred?
2. Were you using the split-view feature at the time?
3. What is the size of your display in lines and columns ( run 'echo $LINES' and 'echo $COLUMNS' to find out )?
Comment 2 Pavel Volkovitskiy 2008-01-09 09:09:05 UTC
1. afair i was just looking on build output, or maybe i scroll history back with mouse wheel
2. no
3. my default settings 31 lines and 149 columns, i'm not sure if i resized that console or not, sorry. maybe it was maximized (37 and 158)
Comment 3 Robert Knight 2008-01-09 15:16:42 UTC
I haven't been able to reproduce this yet, but I spotted a potential race condition which is possibly related.

In Konsole::ScreenWindow::getLineProperties(), is is possible for '_currentLine' to be greater than 'endWindowLine()' in the time between the number of lines in the terminal screen changing (due to the window being resized or the scrollback settings being changed) and the timer which causes the view to be updated expiring.
Comment 4 Robert Knight 2008-01-09 18:31:09 UTC
Just ran into this myself.  I wasn't able to get a complete backtrace.

#6  0xffffe410 in __kernel_vsyscall ()
#7  0xb636f875 in raise () from /lib/tls/i686/cmov/libc.so.6
#8  0xb6371201 in abort () from /lib/tls/i686/cmov/libc.so.6
#9  0xb6db8f9d in qt_message_output (msgType=QtFatalMsg, 
    buf=0xbf80f970 "ASSERT: \"endLine >= startLine && endLine < hist->getLines() + lines\" in file /media/usbdisk/robert/kde4/src/kdebase/apps/konsole/src/Screen.cpp, line 602") at global/qglobal.cpp:2160
#10 0xb6db9021 in qFatal (msg=0xb6eb0010 "ASSERT: \"%s\" in file %s, line %d")
    at global/qglobal.cpp:2392
#11 0xb6db918d in qt_assert (
    assertion=0xb7f5e234 "endLine >= startLine && endLine < hist->getLines() + lines", 
    file=0xb7f5e16c "/media/usbdisk/robert/kde4/src/kdebase/apps/konsole/src/Screen.cpp", line=602) at global/qglobal.cpp:1917
#12 0xb7f170fc in Konsole::Screen::initTabStops (this=0xbf811a54)
    at /media/usbdisk/robert/kde4/src/kdebase/apps/konsole/src/Screen.cpp:717
#13 0xb7f198a2 in Konsole::ScreenWindow::selectedText (this=0x24, 
    preserveLineBreaks=180)
    at /media/usbdisk/robert/kde4/src/kdebase/apps/konsole/src/ScreenWindow.cpp:118
#14 0x085b6260 in ?? ()
#15 0x000003e8 in ?? ()
#16 0x00000024 in ?? ()
#17 0xb6efe3b4 in QLinkedListData::shared_null ()
   from /media/usbdisk/robert/kde4/build/qt/lib/libQtCore.so.4
#18 0x00000000 in ?? ()
#0  0xffffe410 in __kernel_vsyscall ()
Comment 5 Robert Knight 2008-03-17 18:40:28 UTC
Should have been fixed by refactoring the affected class so prevent the race condition described earlier.  I will re-open if it happens again.