Bug 411561 - Konsole segfaults when sending `exit` to multiple tabs
Summary: Konsole segfaults when sending `exit` to multiple tabs
Status: RESOLVED DUPLICATE of bug 431827
Alias: None
Product: konsole
Classification: Applications
Component: general (show other bugs)
Version: 19.08.0
Platform: Neon Linux
: NOR crash
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2019-09-03 15:18 UTC by Isaac
Modified: 2021-05-25 20:24 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
attachment-22032-0.html (1.24 KB, text/html)
2019-09-14 11:01 UTC, tcanabrava
Details
New backtrace (11.31 KB, text/plain)
2019-09-23 11:48 UTC, Isaac
Details
New crash information added by DrKonqi (9.48 KB, patch)
2019-12-14 19:21 UTC, undying.k
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Isaac 2019-09-03 15:18:37 UTC
Application: konsole (19.08.0)

Qt Version: 5.12.3
Frameworks Version: 5.61.0
Operating System: Linux 5.0.0-27-generic x86_64
Distribution: KDE neon User Edition 5.16

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

I had a konsole window with 7 tabs oppened: 6 ssh sessions and a local shell. In one of the ssh sessions tab I selected Edit / Copy input to / All tabs in current window and executed `exit`. Konsole crashed with attached backtrace.

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 0x7f46976495c0 (LWP 6934))]

Thread 4 (Thread 0x7f46718bf700 (LWP 6937)):
#0  0x00007f468e4b99f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x559e9d856788) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x559e9d856738, cond=0x559e9d856760) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x559e9d856760, mutex=0x559e9d856738) at pthread_cond_wait.c:655
#3  0x00007f46728a384b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f46728a3447 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f468e4b36db in start_thread (arg=0x7f46718bf700) at pthread_create.c:463
#6  0x00007f4696f5088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f467a64b700 (LWP 6936)):
#0  0x00007f4696f43bf9 in __GI___poll (fds=0x7f4674004db0, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f468c76c5c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f468c76c6dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f4693608dcb in QEventDispatcherGlib::processEvents (this=0x7f4674000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#4  0x00007f46935aa03a in QEventLoop::exec (this=this@entry=0x7f467a64ad70, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#5  0x00007f46933d14ca in QThread::exec (this=<optimized out>) at thread/qthread.cpp:531
#6  0x00007f4690e05015 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007f46933d2c72 in QThreadPrivate::start (arg=0x7f469107cd80) at thread/qthread_unix.cpp:361
#8  0x00007f468e4b36db in start_thread (arg=0x7f467a64b700) at pthread_create.c:463
#9  0x00007f4696f5088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f4681ff6700 (LWP 6935)):
#0  0x00007f4696f43bf9 in __GI___poll (fds=0x7f4681ff5ca8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f468eae2747 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f468eae436a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f4684ddd578 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5
#4  0x00007f46933d2c72 in QThreadPrivate::start (arg=0x559e9d5a0300) at thread/qthread_unix.cpp:361
#5  0x00007f468e4b36db in start_thread (arg=0x7f4681ff6700) at pthread_create.c:463
#6  0x00007f4696f5088f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f46976495c0 (LWP 6934)):
[KCrash Handler]
#6  QWidget::testAttribute (attribute=<optimized out>, this=<optimized out>) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:868
#7  QWidget::isEnabled (this=0x0) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:767
#8  QWidget::setFocus (this=0x0, reason=Qt::OtherFocusReason) at kernel/qwidget.cpp:6515
#9  0x00007f46935db98f in QtPrivate::QSlotObjectBase::call (a=0x7fff8e66b9c0, r=0x559e9d6c8600, this=0x559e9d6dff30) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#10 QMetaObject::activate (sender=sender@entry=0x559e9d6429a0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x7fff8e66b9c0) at kernel/qobject.cpp:3776
#11 0x00007f46935dbf47 in QMetaObject::activate (sender=sender@entry=0x559e9d6429a0, m=m@entry=0x7f4696e26c40 <Konsole::TabbedViewContainer::staticMetaObject>, local_signal_index=local_signal_index@entry=4, argv=argv@entry=0x7fff8e66b9c0) at kernel/qobject.cpp:3648
#12 0x00007f4696bd8d12 in Konsole::TabbedViewContainer::activeViewChanged (this=this@entry=0x559e9d6429a0, _t1=<optimized out>) at ./obj-x86_64-linux-gnu/src/konsoleprivate_autogen/EWIEGA46WW/moc_ViewContainer.cpp:272
#13 0x00007f4696bc14a7 in Konsole::TabbedViewContainer::currentTabChanged (this=0x559e9d6429a0, index=3) at ./src/ViewContainer.cpp:514
#14 0x00007f46935db98f in QtPrivate::QSlotObjectBase::call (a=0x7fff8e66bb20, r=0x559e9d6429a0, this=0x559e9d6d0f30) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#15 QMetaObject::activate (sender=0x559e9d6429a0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff8e66bb20) at kernel/qobject.cpp:3776
#16 0x00007f46935dbf47 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f4694a8db60 <QTabWidget::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff8e66bb20) at kernel/qobject.cpp:3648
#17 0x00007f469456c17e in QTabWidget::currentChanged (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qtabwidget.cpp:325
#18 0x00007f469456e5c7 in QTabWidget::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qtabwidget.cpp:176
#19 0x00007f46935db875 in QMetaObject::activate (sender=sender@entry=0x559e9d6ca720, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff8e66bca0) at kernel/qobject.cpp:3795
#20 0x00007f46935dbf47 in QMetaObject::activate (sender=sender@entry=0x559e9d6ca720, m=m@entry=0x7f4694a8c5e0 <QTabBar::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff8e66bca0) at kernel/qobject.cpp:3648
#21 0x00007f469454d6fe in QTabBar::currentChanged (this=this@entry=0x559e9d6ca720, _t1=<optimized out>, _t1@entry=3) at .moc/moc_qtabbar.cpp:337
#22 0x00007f4694551cfd in QTabBar::setCurrentIndex (this=this@entry=0x559e9d6ca720, index=3) at widgets/qtabbar.cpp:1383
#23 0x00007f4694555012 in QTabBar::removeTab (this=0x559e9d6ca720, index=index@entry=0) at widgets/qtabbar.cpp:1079
#24 0x00007f469456ce68 in QTabWidgetPrivate::_q_removeTab (this=<optimized out>, index=0) at widgets/qtabwidget.cpp:763
#25 0x00007f469456e5af in QTabWidget::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qtabwidget.cpp:177
#26 0x00007f46935db875 in QMetaObject::activate (sender=0x559e9d6c8530, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff8e66bf20) at kernel/qobject.cpp:3795
#27 0x00007f46935dbf47 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f4694a8bfc0 <QStackedWidget::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff8e66bf20) at kernel/qobject.cpp:3648
#28 0x00007f469454b1f1 in QStackedWidget::widgetRemoved (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qstackedwidget.cpp:225
#29 0x00007f469454b54b in QStackedWidget::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qstackedwidget.cpp:101
#30 0x00007f46935db875 in QMetaObject::activate (sender=sender@entry=0x559e9d6c8470, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff8e66c0a0) at kernel/qobject.cpp:3795
#31 0x00007f46935dbf47 in QMetaObject::activate (sender=sender@entry=0x559e9d6c8470, m=m@entry=0x7f4694a7c760 <QStackedLayout::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff8e66c0a0) at kernel/qobject.cpp:3648
#32 0x00007f46943caaae in QStackedLayout::widgetRemoved (this=this@entry=0x559e9d6c8470, _t1=<optimized out>, _t1@entry=0) at .moc/moc_qstackedlayout.cpp:219
#33 0x00007f46943cb762 in QStackedLayout::takeAt (this=0x559e9d6c8470, index=0) at kernel/qstackedlayout.cpp:280
#34 0x00007f46943c60ee in QLayout::removeWidget (this=0x559e9d6c8470, widget=0x559e9da868a0) at kernel/qlayout.cpp:1390
#35 0x00007f4696bbee2b in Konsole::TabbedViewContainer::viewDestroyed (this=0x559e9d6429a0, view=0x559e9da868a0) at ./src/ViewContainer.cpp:397
#36 0x00007f46935db98f in QtPrivate::QSlotObjectBase::call (a=0x7fff8e66c250, r=0x559e9d6429a0, this=0x559e9daa3bb0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#37 QMetaObject::activate (sender=sender@entry=0x559e9da868a0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff8e66c250) at kernel/qobject.cpp:3776
#38 0x00007f46935dbf47 in QMetaObject::activate (sender=sender@entry=0x559e9da868a0, m=m@entry=0x7f4693a50980 <QObject::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff8e66c250) at kernel/qobject.cpp:3648
#39 0x00007f46935dbfef in QObject::destroyed (this=this@entry=0x559e9da868a0, _t1=<optimized out>, _t1@entry=0x559e9da868a0) at .moc/moc_qobject.cpp:218
#40 0x00007f46943e3363 in QWidget::~QWidget (this=0x559e9da868a0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1674
#41 0x00007f4696be0411 in Konsole::ViewSplitter::~ViewSplitter (this=0x559e9da868a0, __in_chrg=<optimized out>) at ./obj-x86_64-linux-gnu/src/konsoleprivate_autogen/EWIEGA46WW/../../../../src/ViewSplitter.h:53
#42 Konsole::ViewSplitter::~ViewSplitter (this=0x559e9da868a0, __in_chrg=<optimized out>) at ./obj-x86_64-linux-gnu/src/konsoleprivate_autogen/EWIEGA46WW/../../../../src/ViewSplitter.h:53
#43 0x00007f46935dc400 in QObject::event (this=this@entry=0x559e9da868a0, e=e@entry=0x559e9daa4e90) at kernel/qobject.cpp:1251
#44 0x00007f46943e80db in QWidget::event (this=0x559e9da868a0, event=0x559e9daa4e90) at kernel/qwidget.cpp:9388
#45 0x00007f46943a765c in QApplicationPrivate::notify_helper (this=this@entry=0x559e9d59c430, receiver=receiver@entry=0x559e9da868a0, e=e@entry=0x559e9daa4e90) at kernel/qapplication.cpp:3736
#46 0x00007f46943aeb90 in QApplication::notify (this=0x559e9d59c410, receiver=0x559e9da868a0, e=0x559e9daa4e90) at kernel/qapplication.cpp:3483
#47 0x00007f46935abd18 in QCoreApplication::notifyInternal2 (receiver=0x559e9da868a0, event=0x559e9daa4e90) at kernel/qcoreapplication.cpp:1060
#48 0x00007f46935abeee in QCoreApplication::sendEvent (receiver=<optimized out>, event=event@entry=0x559e9daa4e90) at kernel/qcoreapplication.cpp:1450
#49 0x00007f46935ae8d7 in QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x559e9d59b5f0) at kernel/qcoreapplication.cpp:1799
#50 0x00007f46935aee78 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1653
#51 0x00007f4693609793 in postEventSourceDispatch (s=0x559e9d5ef730) at kernel/qeventdispatcher_glib.cpp:276
#52 0x00007f468c76c417 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#53 0x00007f468c76c650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#54 0x00007f468c76c6dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#55 0x00007f4693608daf in QEventDispatcherGlib::processEvents (this=0x559e9d6009e0, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#56 0x00007f46935aa03a in QEventLoop::exec (this=this@entry=0x7fff8e66c920, flags=..., flags@entry=...) at kernel/qeventloop.cpp:225
#57 0x00007f46935b3170 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1363
#58 0x00007f469724cb3d in kdemain (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:229
#59 0x00007f4696e50b97 in __libc_start_main (main=0x559e9cafc720 <main>, argc=3, argv=0x7fff8e66cbd8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff8e66cbc8) at ../csu/libc-start.c:310
#60 0x0000559e9cafc75a in _start ()

The reporter indicates this bug may be a duplicate of or related to bug 410582.

Possible duplicates by query: bug 410582.

Reported using DrKonqi
Comment 1 Kurt Hindenburg 2019-09-05 14:17:59 UTC
There was another report I can't find ATM that was the same - I can't reproduce here.
Comment 2 Isaac 2019-09-05 16:14:01 UTC
Maybe is because how I start konsole? I use the tabs-from-file flag to open konsole with SSH as start command.

Sorry if the flag name is not exactly that, I'm not on my PC and writing this off the top of my head...
Comment 3 Isaac 2019-09-09 09:58:09 UTC
OK, so here's my complete workflow on this, just in case anything in how I'm launching Konsole is causing this segfault:

1. I have a "tabs file" in a vault with something like this:

title: Server1;; command: sshpass -p supersecretpassword1 ssh user1@server1
title: Server2;; command: sshpass -p supersecretpassword2 ssh user2@server2
title: Server3;; command: sshpass -p supersecretpassword3 ssh user3@server3
title: Server4;; command: sshpass -p supersecretpassword4 ssh user4@server4
title: Server5;; command: sshpass -p supersecretpassword5 ssh user5@server5
title: Server6;; command: sshpass -p supersecretpassword6 ssh user6@server6

2. An alias to execute `konsole --tabs-from-file /path/to/that/tabs/file/from/1 &`

3. When I execute that alias, a new Konsole window opens up with 7 tabs, the 6 ssh sessions and a local shell (BTW no idea why it opens this extra local tab)

4. In this new window I do Edit / Copy input to / All tabs in current window

5. Everything works fine except when I run `exit`. Before hitting this bug (sorry, can't tell exactly in what Konsole version started this bug :( ) Konsole just closed normally. Now I'm getting segafults almost every time I `exit`.


Hope this helps! Let me know if you want me to do any other test on this.
Comment 4 Nikolaos Kakouros 2019-09-14 10:11:16 UTC
I have the exact issue. It could only reproduce it when using ssh. Here is the command I use to open multiple tabs:

for i in {1..25}; do konsole --new-tab --workdir "$PWD" -e gcloud compute ssh provisioner-$i & sleep 1; qdbus org.kde.konsole /Sessions/$i setTitle 1 $i; done

The gcloud utility is just a convenience to login with ssh on instances running on Google Cloud.

After all tabs are opened and ssh connection is established, I select from Konsole's menu `Edit->Copy Input to->All Tabs in Current Window`. Then, I press Ctrl-D or type exit and the tabs start closing in a snap. But before closing them all Konsole crashes.

This has also happened to me when not using the 'copy input to` function. I just enter a tab and start hitting Ctrl-D repeatedly to close the tabs. Then Konsole crashes. I am afraid to actually close any tab unless I am completely done with all 25 tabs since it has happened to me that closing even one tab can crash Konsole.
Comment 6 tcanabrava 2019-09-14 11:01:07 UTC
Created attachment 122649 [details]
attachment-22032-0.html

I’ll try to tackle this on Monday

Em sáb, 14 de set de 2019 às 12:15, Nikolaos Kakouros <
bugzilla_noreply@kde.org> escreveu:

> https://bugs.kde.org/show_bug.cgi?id=411561
>
> --- Comment #5 from Nikolaos Kakouros <tterranigma@gmail.com> ---
> BTW, these bug reports also seem relevant:
>
> https://bugs.kde.org/show_bug.cgi?id=371599
> https://bugs.kde.org/show_bug.cgi?id=410582
> https://bugs.kde.org/show_bug.cgi?id=376200
>
> --
> You are receiving this mail because:
> You are the assignee for the bug.
Comment 7 Isaac 2019-09-23 11:47:39 UTC
Don't know if this can help, but I had two konsole windows opened as background jobs and both got closed because of ssh idle timeout. Job 1 had 6 opened ssh tabs and segfaulted. Job 2 had 2 opened ssh tabs and exited normally.


KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = konsole path = /usr/bin pid = 8118
KCrash: Arguments: /usr/bin/konsole --tabs-from-file /home/isalgueiro/Vaults/xxx/konsole_sessions/1.tabs 
KCrash: Attempting to start /usr/lib/x86_64-linux-gnu/libexec/drkonqi from kdeinit
sock_file=/run/user/1000/kdeinit5__0
QSocketNotifier: Invalid socket 8 and type 'Read', disabling...
QSocketNotifier: Invalid socket 9 and type 'Read', disabling...


[1]+  Stopped                 konsole --tabs-from-file ~/Vaults/xxx/konsole_sessions/1.tabs
[2]   Done                    konsole --tabs-from-file ~/Vaults/xxx/konsole_sessions/2.tabs



I'm attaching this new backtrace
Comment 8 Isaac 2019-09-23 11:48:28 UTC
Created attachment 122819 [details]
New backtrace
Comment 9 undying.k 2019-12-14 19:21:56 UTC
Created attachment 124488 [details]
New crash information added by DrKonqi

konsole (19.12.0) using Qt 5.13.2

- What I was doing when the application crashed:

I'm using tmux. Have opened multiple tabs then executed "kill $(pidof tmux)" and got segfault

-- Backtrace (Reduced):
#6  0x00007fa0a30be4be in QWidget::setFocus(Qt::FocusReason) () from /usr/lib64/libQt5Widgets.so.5
[...]
#8  0x00007fa0a3c81c02 in Konsole::TabbedViewContainer::activeViewChanged(Konsole::TerminalDisplay*) () from /usr/lib64/libkonsoleprivate.so.19
#9  0x00007fa0a3d30709 in Konsole::TabbedViewContainer::currentTabChanged(int) () from /usr/lib64/libkonsoleprivate.so.19
[...]
#11 0x00007fa0a3254d7e in QTabWidget::currentChanged(int) () from /usr/lib64/libQt5Widgets.so.5
#12 0x00007fa0a3257151 in QTabWidget::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib64/libQt5Widgets.so.5
Comment 10 Isaac 2021-05-04 15:08:57 UTC
Hi All

This is fixed for me in konsole 21.04.0 and Qt 5.12.2


Regards,
Isaac
Comment 11 Isaac 2021-05-04 15:09:51 UTC
Sorry, is Qt 5.15.2.
Comment 12 ninjalj 2021-05-25 20:24:26 UTC

*** This bug has been marked as a duplicate of bug 431827 ***