Bug 155234 - konsole exits on ASSERT: "endLine >= startLine && endLine < hist->getLines() + lines"
Summary: konsole exits on ASSERT: "endLine >= startLine && endLine < hist->getLines() ...
Status: RESOLVED FIXED
Alias: None
Product: konsole
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-01-07 17:57 UTC by Pavel Volkovitskiy
Modified: 2008-03-17 18:40 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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.