Bug 51395 - kate crashes immediately after startup
Summary: kate crashes immediately after startup
Status: RESOLVED FIXED
Alias: None
Product: kate
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KWrite Developers
URL:
Keywords:
: 67979 (view as bug list)
Depends on:
Blocks:
 
Reported: 2002-12-01 15:59 UTC by Sebastian Voitzsch
Modified: 2003-11-12 10:37 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
testcase (5.41 KB, application/octet-stream)
2002-12-06 15:58 UTC, Sebastian Voitzsch
Details
Fix for kdebase/kate/app/katefileselector.cpp - setDir (488 bytes, patch)
2002-12-15 02:14 UTC, trevor
Details
Another katerc testcase that causes a crash on startup (4.00 KB, text/plain)
2002-12-15 02:29 UTC, trevor
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sebastian Voitzsch 2002-12-01 15:59:59 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc 2.95.3 
OS:          Linux

Kate starts and immediately crashes after startup. This seems to be an update problem - removing the old  ~/.kde/share/config/katerc solved the problem for me.

Backtrace (sorry, did only a quick kate-rebuild with debug, kdelibs are without so far...):

(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...[New Thread 1024 (LWP 25353)]

0x40ecc559 in wait4 () from /lib/libc.so.6
#0  0x40ecc559 in wait4 () from /lib/libc.so.6
#1  0x40f48a80 in __DTOR_END__ () from /lib/libc.so.6
#2  0x40da01f2 in waitpid () from /lib/libpthread.so.0
#3  0x40562a1a in KCrash::defaultCrashHandler ()
   from /opt/kde31/lib/libkdecore.so.4
#4  0x40d9df24 in pthread_sighandler () from /lib/libpthread.so.0
#5  <signal handler called>
#6  0x4083c9bf in QWidget::raise () from /usr/lib/qt31/lib/libqt-mt.so.3
#7  0x41529234 in KateApp::raiseCurrentMainWindow (this=0xbffff50c)
    at kateapp.cpp:240
#8  0x415288e4 in KateApp::newInstance (this=0xbffff50c) at kateapp.cpp:138
#9  0x4057720b in KUniqueApplication::processDelayed ()
   from /opt/kde31/lib/libkdecore.so.4
#10 0x405775b9 in KUniqueApplication::qt_invoke ()
   from /opt/kde31/lib/libkdecore.so.4
#11 0x41527b9e in KateApp::qt_invoke (this=0xbffff50c, _id=10, _o=0xbfffecfc)
    at kateapp.moc:98
#12 0x408b2fb4 in QObject::activate_signal ()
   from /usr/lib/qt31/lib/libqt-mt.so.3
#13 0x40b3672a in QSignal::signal () from /usr/lib/qt31/lib/libqt-mt.so.3
#14 0x408c8f64 in QSignal::activate () from /usr/lib/qt31/lib/libqt-mt.so.3
#15 0x408ce653 in QSingleShotTimer::event ()
   from /usr/lib/qt31/lib/libqt-mt.so.3
#16 0x4085e2b6 in QApplication::internalNotify ()
   from /usr/lib/qt31/lib/libqt-mt.so.3
#17 0x4085e0b6 in QApplication::notify () from /usr/lib/qt31/lib/libqt-mt.so.3
#18 0x4050495b in KApplication::notify () from /opt/kde31/lib/libkdecore.so.4
#19 0x40840a15 in QEventLoop::activateTimers ()
   from /usr/lib/qt31/lib/libqt-mt.so.3
#20 0x408226b4 in QEventLoop::processEvents ()
   from /usr/lib/qt31/lib/libqt-mt.so.3
#21 0x40870453 in QEventLoop::enterLoop () from /usr/lib/qt31/lib/libqt-mt.so.3
#22 0x4085e4a1 in QApplication::enter_loop ()
   from /usr/lib/qt31/lib/libqt-mt.so.3
#23 0x409e29e2 in QDialog::exec () from /usr/lib/qt31/lib/libqt-mt.so.3
#24 0x403d552c in createKMessageBox () from /opt/kde31/lib/libkdeui.so.4
#25 0x403d74df in KMessageBox::error () from /opt/kde31/lib/libkdeui.so.4
#26 0x402062df in KDirOperator::setURL () from /opt/kde31/lib/libkio.so.4
#27 0x41534fcb in KateFileSelector::setDir (this=0x819b8d8, u=
      {m_strProtocol = {static null = {static null = <same as static member of an already seen type>, d = 0x80538f0, static shared_null = 0x80538f0}, d = 0xbffff30c, static shared_null = 0x80538f0}, m_strUser = {static null = {static null = <same as static member of an already seen type>, d = 0x80538f0, static shared_null = 0x80538f0}, d = 0xbffff340, static shared_null = 0x80538f0}, m_strPass = {static null = {static null = <same as static member of an already seen type>, d = 0x80538f0, static shared_null = 0x80538f0}, d = 0x41534163, static shared_null = 0x80538f0}, m_strHost = {static null = {static null = <same as static member of an already seen type>, d = 0x80538f0, static shared_null = 0x80538f0}, d = 0xbffff30c, static shared_null = 0x80538f0}, m_strPath = {static null = {static null = <same as static member of an already seen type>, d = 0x80538f0, static shared_null = 0x80538f0}, d = 0xbffff334, static shared_null = 0x80538f0}, m_strRef_encoded = {static null = {static null = <same as static member of an already seen type>, d = 0x80538f0, static shared_null = 0x80538f0}, d = 0x0, static shared_null = 0x80538f0}, m_strQuery_encoded = {static null = {static null = <same as static member of an already seen type>, d = 0x80538f0, static shared_null = 0x80538f0}, d = 0x40c72cd8, static shared_null = 0x80538f0}, m_bIsMalformed = false, freeForUse = 26, m_iPort = 16726, m_strPath_encoded = {static null = {static null = <same as static member of an already seen type>, d = 0x80538f0, static shared_null = 0x80538f0}, d = 0xbffff37c, static shared_null = 0x80538f0}, d = 0x80635a0}) at katefileselector.cpp:334
#28 0x41534170 in KateFileSelector::readConfig (this=0x819b8d8, 
    config=0x80635a0, name=@0xbffff37c) at katefileselector.cpp:237
#29 0x4153bdf4 in KateMainWindow::readOptions (this=0x8144108, 
    config=0x80635a0) at katemainwindow.cpp:411
#30 0x415390cf in KateMainWindow::KateMainWindow (this=0x8144108, __in_chrg=1, 
    _m_docManager=0x80d26a8, _m_pluginManager=0x8143ab0)
    at katemainwindow.cpp:134
#31 0x41528f31 in KateApp::newMainWindow (this=0xbffff50c) at kateapp.cpp:198
#32 0x41527ee6 in KateApp::KateApp (this=0xbffff50c, forcedNewProcess=false, 
    oldState=false) at kateapp.cpp:62
#33 0x40646d4e in main () from /opt/kde31/lib/kate.so
#34 0x0804cf26 in launch ()
#35 0x0804dd2b in handle_launcher_request ()
#36 0x0804e245 in handle_requests ()
#37 0x0804f0d7 in main ()
#38 0x40e3fb61 in __libc_start_main () from /lib/libc.so.6
Comment 1 John Firebaugh 2002-12-02 00:34:04 UTC
Interesting backtrace. 
Comment 2 Anders Lund 2002-12-06 09:48:58 UTC
can anybody send me a katerc that causes this? 
Comment 3 Sebastian Voitzsch 2002-12-06 15:58:39 UTC
Created attachment 580 [details]
testcase

Well, this is a kate configuration from a kde3 system. But I found that the bug
only occurs when a strange combination of old and new files are there (can
Comment 4 trevor 2002-12-15 02:14:15 UTC
Created attachment 615 [details]
Fix for kdebase/kate/app/katefileselector.cpp - setDir

I had encountered problems similar to the user who reported the bug. My stack 
trace was different, however, and after some debugging, I discovered that if 
the "location" setting of katerc's [fileselector] group points to a 
non-existent path, then I get a crash. This is because kate attempts to set 
the path using KURL, which throws up a message box if it can't find the path. 
The message box then blocks the user interface (I think) and causes the crash 
when kate attempts to show its main window.

This is probably a bug in KURL because I don't think it should be responsible 
for displaying error messages. The applications calling KURL should be the 
ones checking for return codes or exceptions and putting up error messages as 
needed.

I can't be certain of that, so instead I patched kate. The problem can be 
fixed by changing the line in kdebase/kate/app/katefileselector.cpp so that 
if the path doesn't exist, the user's home path is used. A diff is attached.
Anders Lund has agreed to review and apply if OK.

I'm surprised many people haven't encountered this bug, since it would seem
very 
easy to duplicate. All you have to do is run kate, exit, delete whatever 
directory kate was looking at, then restart kate. (I haven't verified this, 
though.)
Comment 5 trevor 2002-12-15 02:29:40 UTC
Created attachment 617 [details]
Another katerc testcase that causes a crash on startup

This katerc was left over from my previous CVS installation of KDE. It causes a
crash on startup using KDE 3.1-RC5:

[New Thread 8192 (LWP 29769)]
0x420ae169 in wait4 () from /lib/i686/libc.so.6
#0  0x420ae169 in wait4 () from /lib/i686/libc.so.6
#1  0x4212a2d0 in __DTOR_END__ () from /lib/i686/libc.so.6
#2  0x41062c63 in waitpid () from /lib/i686/libpthread.so.0
#3  0x4070a549 in KCrash::defaultCrashHandler(int) (sig=11) at kcrash.cpp:235
#4  <signal handler called>
#5  0x40d6af39 in QGList::locate(unsigned) (this=0x5b000000, index=1)
    at tools/qglist.cpp:322
#6  0x40a8db05 in QGList::at(unsigned) (this=0x5b000000, index=1)
    at ../include/qglist.h:168
#7  0x40c040cf in QPtrList<QTab>::at(unsigned) (this=0x5b000000, i=1)
    at ../include/qptrlist.h:88
#8  0x40c02b74 in QTabBar::tabAt(int) const (this=0x40083be0, index=1)
    at widgets/qtabbar.cpp:942
#9  0x40c076fe in QTabWidget::page(int) const (this=0x8170750, index=1)
    at widgets/qtabwidget.cpp:906
#10 0x405a0eda in KDockManager::readConfig(KConfig*, QString) (this=0x812d270, 

    c=0x8052c28, group=) at /opt/qt/include/qstring.h:933
#11 0x405956f9 in KDockMainWindow::readDockConfig(KConfig*, QString) (
    this=0xfffffe00, c=0x0) at kdockwidget.cpp:169
#12 0x400687fb in KateMainWindow::readOptions(KConfig*) (this=0x8118a98, 
    config=0x8052c28) at katemainwindow.cpp:422
#13 0x4006547f in KateMainWindow (this=0x8118a98, _m_docManager=0xfffffe00, 
    _m_pluginManager=0xfffffe00, projectMan=0xfffffe00)
    at katemainwindow.cpp:143
#14 0x40052b50 in KateApp::newMainWindow() (this=0xbffff760) at kateapp.cpp:204

#15 0x400517bf in KateApp (this=0xbffff760, forcedNewProcess=false, 
    oldState=false) at kateapp.cpp:68
#16 0x40014324 in main (argc=1, argv=0xbffff914) at katemain.cpp:106
#17 0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6

The problem has to do with loading the tab configuration and displaying the
tabs, but I'm not sure exactly what's happening here.

It's possible that this katerc was a bastard child of my old installation and
is no longer an issue because it will never be created again. On the other
hand, it could be indicative of a bug in kate that might pop up again later.
Whatever the reason, I've spent a couple hours trying to track it down and have
given up. It's much easier just to delete the config file and let kate generate
a new one.
Comment 6 Christoph Cullmann 2003-01-12 22:57:22 UTC
should work with current CVS and 3.1, if you get again a similar crash, please report 
again and sorry for the problems 
Comment 7 Stephan Kulow 2003-11-12 10:37:18 UTC
*** Bug 67979 has been marked as a duplicate of this bug. ***