Bug 410607 - In 'Confirm Close' dialog, pressing 'Close current Tab' causes crash
Summary: In 'Confirm Close' dialog, pressing 'Close current Tab' causes crash
Status: RESOLVED FIXED
Alias: None
Product: konsole
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2019-08-05 14:23 UTC by Kurt Hindenburg
Modified: 2023-11-29 03:09 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 19.08.1


Attachments
New crash information added by DrKonqi (9.21 KB, text/plain)
2023-11-29 03:09 UTC, Micah Shennum
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kurt Hindenburg 2019-08-05 14:23:11 UTC
Application: konsole (19.11.70)

Qt Version: 5.12.3
Frameworks Version: 5.61.0
Operating System: Linux 4.15.0-55-generic x86_64
Distribution: KDE neon Testing Edition

-- Information about the crash:
- What I was doing when the application crashed:

Open Konsole w/ 2 tabs (assumming you have not check 'Do not ask again'),  pick middle option "Close Current Tab'
Konsole crashes

The crash can be reproduced every time.

-- Backtrace:
Application: Konsole (konsole), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f21d2953800 (LWP 18048))]

Thread 5 (Thread 0x7f219fbe1700 (LWP 18052)):
#0  0x00007f21c92f29f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x1f674d8) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f21c92f29f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x1f67488, cond=0x1f674b0) at pthread_cond_wait.c:502
#2  0x00007f21c92f29f3 in __pthread_cond_wait (cond=0x1f674b0, mutex=0x1f67488) at pthread_cond_wait.c:655
#3  0x00007f21a9de40aa in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#4  0x00007f21a9de3dd7 in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#5  0x00007f21c92ec6db in start_thread (arg=0x7f219fbe1700) at pthread_create.c:463
#6  0x00007f21ca87488f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f21a4b01700 (LWP 18051)):
#0  0x00007f21c92f29f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x201c3a4) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  0x00007f21c92f29f3 in __pthread_cond_wait_common (abstime=0x0, mutex=0x201c350, cond=0x201c378) at pthread_cond_wait.c:502
#2  0x00007f21c92f29f3 in __pthread_cond_wait (cond=0x201c378, mutex=0x201c350) at pthread_cond_wait.c:655
#3  0x00007f21a9de40aa in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#4  0x00007f21a9de3dd7 in  () at /usr/lib/x86_64-linux-gnu/dri/r600_dri.so
#5  0x00007f21c92ec6db in start_thread (arg=0x7f21a4b01700) at pthread_create.c:463
#6  0x00007f21ca87488f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f21b59db700 (LWP 18050)):
#0  0x00007f21ca867bf9 in __GI___poll (fds=0x7f21b0004db0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f21c64a15c9 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f21c64a16dc in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f21cb760dcb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f21cb70203a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f21cb5294ca in QThread::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f21cd30c015 in  () at /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007f21cb52ac72 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f21c92ec6db in start_thread (arg=0x7f21b59db700) at pthread_create.c:463
#9  0x00007f21ca87488f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f21bd376700 (LWP 18049)):
#0  0x00007f21ca867bf9 in __GI___poll (fds=0x7f21bd375ca8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f21c81c3747 in  () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f21c81c536a in xcb_wait_for_event () at /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f21c015e578 in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007f21cb52ac72 in  () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f21c92ec6db in start_thread (arg=0x7f21bd376700) at pthread_create.c:463
#6  0x00007f21ca87488f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f21d2953800 (LWP 18048)):
[KCrash Handler]
#6  0x00007f21d254ab98 in QWeakPointer<QObject>::QWeakPointer(QWeakPointer<QObject> const&) (this=0x7ffe1600a3f8, other=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qsharedpointer_impl.h:589
#7  0x00007f21d254aced in QPointer<Konsole::Session>::QPointer(QPointer<Konsole::Session> const&) (this=0x7ffe1600a3f8) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qpointer.h:53
#8  0x00007f21d2548f60 in Konsole::SessionController::session() (this=0x0) at /zpool/projects/Devel/KDE/src/konsole/src/SessionController.h:105
#9  0x00007f21d25467b1 in Konsole::MainWindow::queryClose() (this=0x1ea4750) at /zpool/projects/Devel/KDE/src/konsole/src/MainWindow.cpp:649
#10 0x00007f21d12d2855 in KMainWindow::closeEvent(QCloseEvent*) () at /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#11 0x00007f21cc7dd9c8 in QWidget::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007f21cc8e6e50 in QMainWindow::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007f21d12d2aa1 in KMainWindow::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#14 0x00007f21d1318a55 in KXmlGuiWindow::event(QEvent*) () at /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#15 0x00007f21cc79d65c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007f21cc7a4b90 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007f21cb703d18 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007f21cc7d8db5 in QWidgetPrivate::close_helper(QWidgetPrivate::CloseMode) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007f21cc7f8106 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007f21cc7fb7a4 in  () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007f21cc79d65c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007f21cc7a4b90 in QApplication::notify(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007f21cb703d18 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007f21cbf683f5 in QGuiApplicationPrivate::processCloseEvent(QWindowSystemInterfacePrivate::CloseEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#25 0x00007f21cbf6c395 in QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#26 0x00007f21cbf44b4b in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5
#27 0x00007f21c015f59a in  () at /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#28 0x00007f21c64a1417 in g_main_context_dispatch () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007f21c64a1650 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007f21c64a16dc in g_main_context_iteration () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007f21cb760daf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#32 0x00007f21cb70203a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x00007f21cb70b170 in QCoreApplication::exec() () at /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007f21d2553ef2 in kdemain(int, char**) (argc=1, argv=0x7ffe1600b608) at /zpool/projects/Devel/KDE/src/konsole/src/main.cpp:212
#35 0x0000000000400a52 in main(int, char**) (argc=1, argv=0x7ffe1600b608) at /zpool/projects/Devel/KDE/build/konsole/src/konsole_dummy.cpp:3

Reported using DrKonqi
Comment 1 Kurt Hindenburg 2019-08-07 00:53:21 UTC
Git commit a49332e5537d0da7236ffee7bc8104407e1e8a06 by Kurt Hindenburg.
Committed on 07/08/2019 at 00:52.
Pushed by hindenburg into branch 'Applications/19.08'.

Do not allow 'Close Current Tab" to crash

For now just comment out code for 19.08

M  +4    -0    src/MainWindow.cpp

https://invent.kde.org/kde/konsole/commit/a49332e5537d0da7236ffee7bc8104407e1e8a06
Comment 2 Kurt Hindenburg 2019-08-07 00:53:25 UTC
Git commit a49332e5537d0da7236ffee7bc8104407e1e8a06 by Kurt Hindenburg.
Committed on 07/08/2019 at 00:52.
Pushed by scmsync into branch 'Applications/19.08'.

Do not allow 'Close Current Tab" to crash

For now just comment out code for 19.08

M  +4    -0    src/MainWindow.cpp

https://commits.kde.org/konsole/a49332e5537d0da7236ffee7bc8104407e1e8a06
Comment 3 Kurt Hindenburg 2019-08-18 20:58:09 UTC
Git commit 62a5f1d7947d4f101d036ba98c9b6cccc3b69a97 by Kurt Hindenburg.
Committed on 18/08/2019 at 20:51.
Pushed by hindenburg into branch 'master'.

Fix crash on "Close Current Tab" handling

Summary:
_pluggedController disconnection happens  when session is closed
by closeInNormalWay or closeInForceWay and calling
disconnectController leads to Konsole crash.   Also a case when
closeInNormalWay is false was not considered.
FIXED-IN: 19.08.1

Test Plan:
1. Open Konsole
2. Open one more tab
3. Try to close Konsole
4. Pick option "Close Current Tab" (assuming you have not check
    'Do not ask again')

Reviewers: #konsole, hindenburg

Reviewed By: #konsole, hindenburg

Subscribers: hindenburg, konsole-devel, #konsole

Tags: #konsole

Differential Revision: https://phabricator.kde.org/D23246

M  +5    -2    src/MainWindow.cpp

https://invent.kde.org/kde/konsole/commit/62a5f1d7947d4f101d036ba98c9b6cccc3b69a97
Comment 4 Kurt Hindenburg 2019-08-18 20:58:12 UTC
Git commit 62a5f1d7947d4f101d036ba98c9b6cccc3b69a97 by Kurt Hindenburg.
Committed on 18/08/2019 at 20:51.
Pushed by scmsync into branch 'master'.

Fix crash on "Close Current Tab" handling

Summary:
_pluggedController disconnection happens  when session is closed
by closeInNormalWay or closeInForceWay and calling
disconnectController leads to Konsole crash.   Also a case when
closeInNormalWay is false was not considered.
FIXED-IN: 19.08.1

Test Plan:
1. Open Konsole
2. Open one more tab
3. Try to close Konsole
4. Pick option "Close Current Tab" (assuming you have not check
    'Do not ask again')

Reviewers: #konsole, hindenburg

Reviewed By: #konsole, hindenburg

Subscribers: hindenburg, konsole-devel, #konsole

Tags: #konsole

Differential Revision: https://phabricator.kde.org/D23246

M  +5    -2    src/MainWindow.cpp

https://commits.kde.org/konsole/62a5f1d7947d4f101d036ba98c9b6cccc3b69a97
Comment 5 Kurt Hindenburg 2019-08-18 21:36:20 UTC
Git commit 3c25aafdbaf743665aa2fc0c2c6effc36c35e09c by Kurt Hindenburg, on behalf of Andrey Yashkin.
Committed on 18/08/2019 at 21:36.
Pushed by hindenburg into branch 'Applications/19.08'.

Fix crash on "Close Current Tab" handling

Summary:
_pluggedController disconnection happens  when session is closed
by closeInNormalWay or closeInForceWay and calling
disconnectController leads to Konsole crash.   Also a case when
closeInNormalWay is false was not considered.
FIXED-IN: 19.08.1

Test Plan:
1. Open Konsole
2. Open one more tab
3. Try to close Konsole
4. Pick option "Close Current Tab" (assuming you have not check
    'Do not ask again')

M  +5    -6    src/MainWindow.cpp

https://invent.kde.org/kde/konsole/commit/3c25aafdbaf743665aa2fc0c2c6effc36c35e09c
Comment 6 Kurt Hindenburg 2019-08-18 21:36:23 UTC
Git commit 3c25aafdbaf743665aa2fc0c2c6effc36c35e09c by Kurt Hindenburg, on behalf of Andrey Yashkin.
Committed on 18/08/2019 at 21:36.
Pushed by scmsync into branch 'Applications/19.08'.

Fix crash on "Close Current Tab" handling

Summary:
_pluggedController disconnection happens  when session is closed
by closeInNormalWay or closeInForceWay and calling
disconnectController leads to Konsole crash.   Also a case when
closeInNormalWay is false was not considered.
FIXED-IN: 19.08.1

Test Plan:
1. Open Konsole
2. Open one more tab
3. Try to close Konsole
4. Pick option "Close Current Tab" (assuming you have not check
    'Do not ask again')

M  +5    -6    src/MainWindow.cpp

https://commits.kde.org/konsole/3c25aafdbaf743665aa2fc0c2c6effc36c35e09c
Comment 7 Micah Shennum 2023-11-29 03:09:56 UTC
Created attachment 163598 [details]
New crash information added by DrKonqi

konsole (23.08.3) using Qt 5.15.11

Launched discord via the comand line in a new konsole tab, it needed and update, but froze when I tried to close, so I closed the tab to force the situation. Hit the confirmation dialog and then had this crash. 
It looked like kwin / plasma may have reloaded? This may just have been a trick of the window disapearing.

-- Backtrace (Reduced):
#6  QWeakPointer<QObject>::QWeakPointer (other=..., this=this@entry=0x7ffdfa5f84f0) at /usr/include/qt5/QtCore/qsharedpointer_impl.h:589
#7  QPointer<Konsole::Session>::QPointer (this=this@entry=0x7ffdfa5f84f0) at /usr/include/qt5/QtCore/qpointer.h:53
#8  Konsole::SessionDisplayConnection::session (this=0xa7000000a6) at /var/tmp/portage/kde-apps/konsole-23.08.3/work/konsole-23.08.3/src/session/SessionDisplayConnection.cpp:25
#9  0x00007f815366c91d in Konsole::SessionController::session (this=0x7f813c078650) at /var/tmp/portage/kde-apps/konsole-23.08.3/work/konsole-23.08.3/src/session/SessionController.h:94
#10 Konsole::SessionController::closeSession (this=0x7f813c078650) at /var/tmp/portage/kde-apps/konsole-23.08.3/work/konsole-23.08.3/src/session/SessionController.cpp:1214