Bug 431827

Summary: Konsole crashes if issuing CTLR+d if input is copied to other tabs
Product: [Applications] konsole Reporter: Michael M <redeamer>
Component: generalAssignee: Konsole Developer <konsole-devel>
Status: RESOLVED FIXED    
Severity: crash CC: bugseforuns, greatsport1, jkt
Priority: NOR Keywords: drkonqi
Version: 20.12.1   
Target Milestone: ---   
Platform: Debian unstable   
OS: Linux   
Latest Commit: Version Fixed In: 20.12.2
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description Michael M 2021-01-19 20:50:36 UTC
Application: konsole (20.12.1)

Qt Version: 5.15.2
Frameworks Version: 5.78.0
Operating System: Linux 5.10.0-1-amd64 x86_64
Windowing system: X11
Distribution: Debian GNU/Linux bullseye/sid

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

- Open konsole
- Open four (works with two too, but less reliable) tabs
- Go back to first tab -> select 'Edit -> Copy Input To -> All Tabs in Current window'
- Switch through all tabs again
- Go back to first tab -> type 'ls -l'
- Switch through all tabs again
- Go back to first tab -> press 'CTRL + d' to exit -> CRASH

It sounds pretty much like a duplicate from 405158, but the fixed lines are present in the source debian unstable uses to compile currently (konsole-20.12.1). So therefore creating a new issue.

The crash can be reproduced sometimes.

-- Backtrace:
Application: Konsole (konsole), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f8f7134cdbc in QWidget::testAttribute (attribute=<optimized out>, this=<optimized out>) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:883
#5  QWidget::isEnabled (this=<optimized out>) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:780
#6  QWidget::setFocus (this=0x0, reason=Qt::OtherFocusReason) at kernel/qwidget.cpp:6286
#7  0x00007f8f72393506 in QtPrivate::QSlotObjectBase::call (a=0x7ffdd430aea0, r=0x561c0d228950, this=0x561c0d249170) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#8  doActivate<false> (sender=0x561c0d1de950, signal_index=15, argv=argv@entry=0x7ffdd430aea0) at kernel/qobject.cpp:3886
#9  0x00007f8f7238c860 in QMetaObject::activate (sender=sender@entry=0x561c0d1de950, m=m@entry=0x7f8f71ee1780 <Konsole::TabbedViewContainer::staticMetaObject>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x7ffdd430aea0) at kernel/qobject.cpp:3946
#10 0x00007f8f71dd7e62 in Konsole::TabbedViewContainer::activeViewChanged (this=this@entry=0x561c0d1de950, _t1=<optimized out>, _t1@entry=0x0) at ./obj-x86_64-linux-gnu/src/konsoleprivate_autogen/IMAN36LHMA/moc_ViewContainer.cpp:300
#11 0x00007f8f71e4b696 in Konsole::TabbedViewContainer::currentTabChanged (index=7, this=0x561c0d1de950) at ./src/widgets/ViewContainer.cpp:491
#12 Konsole::TabbedViewContainer::currentTabChanged (this=0x561c0d1de950, index=7) at ./src/widgets/ViewContainer.cpp:486
#13 0x00007f8f72393506 in QtPrivate::QSlotObjectBase::call (a=0x7ffdd430b000, r=0x561c0d1de950, this=0x561c0d22aa60) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#14 doActivate<false> (sender=0x561c0d1de950, signal_index=7, argv=argv@entry=0x7ffdd430b000) at kernel/qobject.cpp:3886
#15 0x00007f8f7238c860 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f8f7181d560 <QTabWidget::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffdd430b000) at kernel/qobject.cpp:3946
#16 0x00007f8f714ddc0e in QTabWidget::currentChanged (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qtabwidget.cpp:326
#17 0x00007f8f72393540 in doActivate<false> (sender=0x561c0d22c580, signal_index=7, argv=argv@entry=0x7ffdd430b120) at kernel/qobject.cpp:3898
#18 0x00007f8f7238c860 in QMetaObject::activate (sender=sender@entry=0x561c0d22c580, m=m@entry=0x7f8f7181bfc0 <QTabBar::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffdd430b120) at kernel/qobject.cpp:3946
#19 0x00007f8f714bdede in QTabBar::currentChanged (this=this@entry=0x561c0d22c580, _t1=<optimized out>) at .moc/moc_qtabbar.cpp:338
#20 0x00007f8f714c1f34 in QTabBar::setCurrentIndex (this=this@entry=0x561c0d22c580, index=<optimized out>) at widgets/qtabbar.cpp:1450
#21 0x00007f8f714c5263 in QTabBar::removeTab (this=0x561c0d22c580, index=<optimized out>, index@entry=0) at widgets/qtabbar.cpp:1101
#22 0x00007f8f714e005e in QTabWidgetPrivate::_q_removeTab (index=0, this=<optimized out>) at widgets/qtabwidget.cpp:802
#23 QTabWidget::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qtabwidget.cpp:178
#24 0x00007f8f72393540 in doActivate<false> (sender=0x561c0d228630, signal_index=8, argv=argv@entry=0x7ffdd430b300) at kernel/qobject.cpp:3898
#25 0x00007f8f7238c860 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f8f7181b9a0 <QStackedWidget::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffdd430b300) at kernel/qobject.cpp:3946
#26 0x00007f8f714bb8d1 in QStackedWidget::widgetRemoved (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qstackedwidget.cpp:226
#27 0x00007f8f72393540 in doActivate<false> (sender=0x561c0d2287b0, signal_index=3, argv=argv@entry=0x7ffdd430b420) at kernel/qobject.cpp:3898
#28 0x00007f8f7238c860 in QMetaObject::activate (sender=sender@entry=0x561c0d2287b0, m=m@entry=0x7f8f7180c000 <QStackedLayout::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffdd430b420) at kernel/qobject.cpp:3946
#29 0x00007f8f7133782e in QStackedLayout::widgetRemoved (this=this@entry=0x561c0d2287b0, _t1=<optimized out>, _t1@entry=0) at .moc/moc_qstackedlayout.cpp:220
#30 0x00007f8f71338755 in QStackedLayout::takeAt (this=0x561c0d2287b0, index=0) at kernel/qstackedlayout.cpp:280
#31 0x00007f8f71332f2e in QLayout::removeWidget (this=0x561c0d2287b0, widget=0x561c0d6349d0) at kernel/qlayout.cpp:1393
#32 0x00007f8f71e49c35 in Konsole::TabbedViewContainer::viewDestroyed (this=0x561c0d1de950, view=<optimized out>) at ./src/widgets/ViewContainer.cpp:399
#33 0x00007f8f72393506 in QtPrivate::QSlotObjectBase::call (a=0x7ffdd430b5d0, r=0x561c0d1de950, this=0x561c0d4c02b0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#34 doActivate<false> (sender=0x561c0d6349d0, signal_index=0, argv=argv@entry=0x7ffdd430b5d0) at kernel/qobject.cpp:3886
#35 0x00007f8f7238c860 in QMetaObject::activate (sender=sender@entry=0x561c0d6349d0, m=m@entry=0x7f8f725e8100 <QObject::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffdd430b5d0) at kernel/qobject.cpp:3946
#36 0x00007f8f7238c90f in QObject::destroyed (this=this@entry=0x561c0d6349d0, _t1=<optimized out>, _t1@entry=0x561c0d6349d0) at .moc/moc_qobject.cpp:219
#37 0x00007f8f7134e9e3 in QWidget::~QWidget (this=0x561c0d6349d0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1497
#38 0x00007f8f71dde791 in Konsole::ViewSplitter::~ViewSplitter (this=0x561c0d6349d0, __in_chrg=<optimized out>) at ./obj-x86_64-linux-gnu/src/konsoleprivate_autogen/IMAN36LHMA/../../../../src/widgets/ViewSplitter.h:51
#39 Konsole::ViewSplitter::~ViewSplitter (this=0x561c0d6349d0, __in_chrg=<optimized out>) at ./obj-x86_64-linux-gnu/src/konsoleprivate_autogen/IMAN36LHMA/../../../../src/widgets/ViewSplitter.h:51
#40 0x00007f8f72388d0f in QObject::event (this=this@entry=0x561c0d6349d0, e=e@entry=0x561c0d4ce330) at kernel/qobject.cpp:1301
#41 0x00007f8f71352eb9 in QWidget::event (this=this@entry=0x561c0d6349d0, event=event@entry=0x561c0d4ce330) at kernel/qwidget.cpp:9080
#42 0x00007f8f713fb41e in QFrame::event (this=0x561c0d6349d0, e=0x561c0d4ce330) at widgets/qframe.cpp:550
#43 0x00007f8f7131315f in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x561c0d6349d0, e=0x561c0d4ce330) at kernel/qapplication.cpp:3632
#44 0x00007f8f7235cf2a in QCoreApplication::notifyInternal2 (receiver=0x561c0d6349d0, event=0x561c0d4ce330) at kernel/qcoreapplication.cpp:1063
#45 0x00007f8f7235f961 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x561c0d0770b0) at kernel/qcoreapplication.cpp:1817
#46 0x00007f8f723b4df3 in postEventSourceDispatch (s=0x561c0d149a70) at kernel/qeventdispatcher_glib.cpp:277
#47 0x00007f8f70024d3b in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#48 0x00007f8f70024fe8 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#49 0x00007f8f7002509f in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#50 0x00007f8f723b447f in QEventDispatcherGlib::processEvents (this=0x561c0d159940, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#51 0x00007f8f7235b8eb in QEventLoop::exec (this=this@entry=0x7ffdd430ba40, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#52 0x00007f8f72363b60 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#53 0x00007f8f726bc3eb in kdemain (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:251
#54 0x00007f8f71f10d0a in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#55 0x0000561c0b0f51ea in _start ()
[Inferior 1 (process 46799) detached]

The reporter indicates this bug may be a duplicate of or related to bug 429486, bug 425775, bug 423984, bug 411561, bug 410582, bug 405158.

Possible duplicates by query: bug 429486, bug 425775, bug 424342, bug 423984, bug 415728.

Reported using DrKonqi
Comment 1 Jack Thomasson 2021-01-21 14:23:54 UTC
Created attachment 135031 [details]
New crash information added by DrKonqi

konsole (20.08.3) using Qt 5.15.2

- What I was doing when the application crashed:

multiple tabs with copy input to all
press Ctrl-D to exit all the shells

-- Backtrace (Reduced):
#4  0x00007f50a644d8b0 in QWidget::setFocus(Qt::FocusReason) () from /lib64/libQt5Widgets.so.5
#5  0x00007f50a59ab386 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#6  0x00007f50a6fb7e26 in Konsole::TabbedViewContainer::activeViewChanged(Konsole::TerminalDisplay*) () from /lib64/libkonsoleprivate.so.20
#7  0x00007f50a7050c8a in Konsole::TabbedViewContainer::currentTabChanged(int) () from /lib64/libkonsoleprivate.so.20
#8  0x00007f50a59ab386 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
Comment 2 Bug Janitor Service 2021-01-21 18:22:12 UTC
A possibly relevant merge request was started @ https://invent.kde.org/utilities/konsole/-/merge_requests/333
Comment 3 Carlos Alves 2021-01-22 02:23:34 UTC
Git commit acaabffd992c9bb8799501200121429925f51210 by Carlos Alves.
Committed on 21/01/2021 at 18:20.
Pushed by hindenburg into branch 'master'.

Fix crash exiting all tabs at the same time

It was emitting a signal with a nullptr and updating an icon of a
nullptr as the TerminalDisplay was already deleted.
FIXED-IN: 20.12.2

M  +4    -2    src/widgets/ViewContainer.cpp

https://invent.kde.org/utilities/konsole/commit/acaabffd992c9bb8799501200121429925f51210
Comment 4 Kurt Hindenburg 2021-01-22 02:55:08 UTC
Git commit fc7850c3e396400e82ad99bacaf9e4f825c083a9 by Kurt Hindenburg, on behalf of Carlos Alves.
Committed on 22/01/2021 at 02:52.
Pushed by hindenburg into branch 'release/20.12'.

Fix crash exiting all tabs at the same time

It was emitting a signal with a nullptr and updating an icon of a
nullptr as the TerminalDisplay was already deleted.
FIXED-IN: 20.12.2
(cherry picked from commit acaabffd992c9bb8799501200121429925f51210)

M  +4    -2    src/widgets/ViewContainer.cpp

https://invent.kde.org/utilities/konsole/commit/fc7850c3e396400e82ad99bacaf9e4f825c083a9
Comment 5 Patrick Silva 2021-02-05 11:13:55 UTC
is bug 410582 a duplicate?
Comment 6 Carlos Alves 2021-02-17 23:37:31 UTC
*** Bug 433113 has been marked as a duplicate of this bug. ***
Comment 7 ninjalj 2021-05-25 20:24:26 UTC
*** Bug 411561 has been marked as a duplicate of this bug. ***
Comment 8 ninjalj 2021-05-25 20:28:51 UTC
*** Bug 410582 has been marked as a duplicate of this bug. ***