Bug 227008 - [steps] switching session from two mainwindows to one crashes
Summary: [steps] switching session from two mainwindows to one crashes
Status: RESOLVED FIXED
Alias: None
Product: kate
Classification: Applications
Component: application (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: VHI crash
Target Milestone: ---
Assignee: KWrite Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-02-15 15:39 UTC by Dominik Haumann
Modified: 2010-02-16 12:36 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dominik Haumann 2010-02-15 15:39:33 UTC
Version:            (using KDE 4.4.0)
OS:                Linux
Installed from:    Compiled From Sources

1. create a session with two mainwindows.
2. choose mainwindow2 and switch to a session with only one mainwindow
3. crash

Choosing mainwindow1 and then switching to a session with only one mainwindow works. This indicates that the current code path is in mainwindow2, which gets deleted.

Possible solution: use single-shot timer.

Backtrace: 

Application: Kate (kate), signal: Segmentation fault
[KCrash Handler]
#6  0xb6945e61 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#7  0xb6df13b3 in QActionGroup::selected () from /usr/lib/libQtGui.so.4
#8  0xb6df1ca4 in ?? () from /usr/lib/libQtGui.so.4
#9  0xb6df1eae in QActionGroup::qt_metacall () from /usr/lib/libQtGui.so.4
#10 0xb69451b8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#11 0xb69455f0 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#12 0xb6dec6c1 in QAction::triggered () from /usr/lib/libQtGui.so.4
#13 0xb6dedc3f in QAction::activate () from /usr/lib/libQtGui.so.4
#14 0xb723f0e4 in ?? () from /usr/lib/libQtGui.so.4
#15 0xb724583b in ?? () from /usr/lib/libQtGui.so.4
#16 0xb7246382 in QMenu::mouseReleaseEvent () from /usr/lib/libQtGui.so.4
#17 0xb7ad4e15 in KMenu::mouseReleaseEvent () from /usr/lib/libkdeui.so.5
#18 0xb6e49973 in QWidget::event () from /usr/lib/libQtGui.so.4
#19 0xb7248639 in QMenu::event () from /usr/lib/libQtGui.so.4
#20 0xb6df2d3c in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
#21 0xb6dfb9b1 in QApplication::notify () from /usr/lib/libQtGui.so.4
#22 0xb79ec49d in KApplication::notify () from /usr/lib/libkdeui.so.5
#23 0xb692fbcb in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
#24 0xb6dfaa1e in QApplicationPrivate::sendMouseEvent () from /usr/lib/libQtGui.so.4
#25 0xb6e6af56 in ?? () from /usr/lib/libQtGui.so.4
#26 0xb6e6a085 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#27 0xb6e9537a in ?? () from /usr/lib/libQtGui.so.4
#28 0xb5cf4b88 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#29 0xb5cf80eb in ?? () from /usr/lib/libglib-2.0.so.0
#30 0xb5cf8268 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#31 0xb695b2f8 in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#32 0xb6e94a75 in ?? () from /usr/lib/libQtGui.so.4
#33 0xb692e1fa in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#34 0xb692e642 in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#35 0xb6930ae9 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#36 0xb6df2bb7 in QApplication::exec () from /usr/lib/libQtGui.so.4
#37 0xb7edb86d in kdemain () from /usr/lib/libkdeinit4_kate.so
#38 0x08048672 in _start ()
Comment 1 Dominik Haumann 2010-02-16 12:32:01 UTC
SVN commit 1090938 by dhaumann:

fix crash in switching session with multiple mainwindows
(by using a Qt::QueuedConnection for the action invocation)

BUG: 227008


 M  +4 -8      katemainwindow.cpp  
 M  +6 -1      katesession.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1090938
Comment 2 Dominik Haumann 2010-02-16 12:36:44 UTC
SVN commit 1090941 by dhaumann:

backport SVN commit 1090938 by dhaumann:

fix crash in switching session with multiple mainwindows
(by using a Qt::QueuedConnection for the action invocation)

CCBUG: 227008


 M  +3 -9      katemainwindow.cpp  
 M  +6 -1      katesession.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1090941