Bug 418543

Summary: konsole segfault while searching in the history
Product: [Applications] konsole Reporter: rainer+kdebugs
Component: historyAssignee: Konsole Developer <konsole-devel>
Status: RESOLVED WORKSFORME    
Severity: crash CC: justin.zobel
Priority: NOR    
Version: 18.12.3   
Target Milestone: ---   
Platform: Kubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description rainer+kdebugs 2020-03-06 13:11:06 UTC
Crash while clicking the previous/next buttons repeatedly in the history search while the system was under load.
Possibly related to https://bugs.kde.org/show_bug.cgi?id=360146

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 0x7f7cd6adcf80 (LWP 3309))]

Thread 5 (Thread 0x7f7cc4d2e700 (LWP 21925)):
#0  __GI___libc_read (nbytes=10, buf=0x7f7cc4d2dbde, fd=76) at ../sysdeps/unix/sysv/linux/read.c:26
#1  __GI___libc_read (fd=76, buf=0x7f7cc4d2dbde, nbytes=10) at ../sysdeps/unix/sysv/linux/read.c:24
#2  0x00007f7cd74c01f1 in pa_read () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-12.2.so
#3  0x00007f7cd9699e3e in pa_mainloop_prepare () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#4  0x00007f7cd969a8a0 in pa_mainloop_iterate () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#5  0x00007f7cd969a960 in pa_mainloop_run () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#6  0x00007f7cd96a8939 in ?? () from /usr/lib/x86_64-linux-gnu/libpulse.so.0
#7  0x00007f7cd74ef788 in ?? () from /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-12.2.so
#8  0x00007f7cda252182 in start_thread (arg=<optimized out>) at pthread_create.c:486
#9  0x00007f7cdcd69b1f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7f7ccd57f700 (LWP 3312)):
#0  futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55b77d04d208) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x55b77d04d1b8, cond=0x55b77d04d1e0) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x55b77d04d1e0, mutex=0x55b77d04d1b8) at pthread_cond_wait.c:655
#3  0x00007f7ccdb9536b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007f7ccdb950d7 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007f7cda252182 in start_thread (arg=<optimized out>) at pthread_create.c:486
#6  0x00007f7cdcd69b1f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7f7ccff47700 (LWP 3311)):
#0  __GI___libc_read (nbytes=16, buf=0x7f7ccff46b50, fd=7) at ../sysdeps/unix/sysv/linux/read.c:26
#1  __GI___libc_read (fd=7, buf=0x7f7ccff46b50, nbytes=16) at ../sysdeps/unix/sysv/linux/read.c:24
#2  0x00007f7cd9a7e410 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f7cd9a376cf in g_main_context_check () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f7cd9a37ba0 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f7cd9a37d1c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#6  0x00007f7cdb610063 in QEventDispatcherGlib::processEvents (this=0x7f7cc8000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#7  0x00007f7cdb5bb5bb in QEventLoop::exec (this=this@entry=0x7f7ccff46d70, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#8  0x00007f7cdb4062c6 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#9  0x00007f7cdab65565 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#10 0x00007f7cdb407612 in QThreadPrivate::start (arg=0x7f7cdabe5d80) at thread/qthread_unix.cpp:361
#11 0x00007f7cda252182 in start_thread (arg=<optimized out>) at pthread_create.c:486
#12 0x00007f7cdcd69b1f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7f7cd5830700 (LWP 3310)):
#0  0x00007f7cdcd5d729 in __GI___poll (fds=0x7f7cd582fca8, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007f7cda482917 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007f7cda48453a in xcb_wait_for_event () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007f7cd641b6a8 in QXcbEventQueue::run (this=0x55b77cff44d0) at qxcbeventqueue.cpp:228
#4  0x00007f7cdb407612 in QThreadPrivate::start (arg=0x55b77cff44d0) at thread/qthread_unix.cpp:361
#5  0x00007f7cda252182 in start_thread (arg=<optimized out>) at pthread_create.c:486
#6  0x00007f7cdcd69b1f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7f7cd6adcf80 (LWP 3309)):
[KCrash Handler]
#6  0x00007f7cdcba1760 in Konsole::Screen::copyLineToStream (this=this@entry=0x7f7cd00116e0, line=line@entry=8704, start=<optimized out>, count=-702720, count@entry=-1, decoder=decoder@entry=0x7fff29dc0d90, appendNewLine=appendNewLine@entry=true, options=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qflags.h:150
#7  0x00007f7cdcba18f1 in Konsole::Screen::writeToStream (this=0x7f7cd00116e0, decoder=0x7fff29dc0d90, startIndex=<optimized out>, endIndex=<optimized out>, options=...) at ./src/Screen.cpp:1269
#8  0x00007f7cdcbbc308 in Konsole::SearchHistoryTask::executeOnScreenWindow (this=this@entry=0x55b77e85b6c0, session=..., window=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:596
#9  0x00007f7cdcbbc7aa in Konsole::SearchHistoryTask::execute (this=0x55b77e85b6c0) at /usr/include/c++/8/bits/atomic_base.h:295
#10 0x00007f7cdcbbb0aa in Konsole::SessionController::beginSearch (this=this@entry=0x55b77d77b590, text=..., direction=direction@entry=Konsole::Enum::BackwardsSearch) at ./src/SessionController.cpp:1345
#11 0x00007f7cdcbbb473 in Konsole::SessionController::findNextInHistory (this=0x55b77d77b590) at /usr/include/c++/8/bits/atomic_base.h:390
#12 0x00007f7cdb5e6563 in QtPrivate::QSlotObjectBase::call (a=0x7fff29dc0fd0, r=0x55b77d77b590, this=0x55b77d7ca0a0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#13 QMetaObject::activate (sender=0x55b77d786170, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3774
#14 0x00007f7cdb5e6563 in QtPrivate::QSlotObjectBase::call (a=0x7fff29dc1120, r=0x55b77d786170, this=0x55b77d764270) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#15 QMetaObject::activate (sender=0x55b77d763980, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3774
#16 0x00007f7cdc06d032 in QAbstractButton::clicked (this=this@entry=0x55b77d763980, _t1=<optimized out>) at .moc/moc_qabstractbutton.cpp:312
#17 0x00007f7cdc06d24a in QAbstractButtonPrivate::emitClicked (this=0x55b77d763ae0) at widgets/qabstractbutton.cpp:414
#18 0x00007f7cdc06df33 in QAbstractButton::click (this=0x55b77d763980) at widgets/qabstractbutton.cpp:871
#19 QAbstractButton::click (this=0x55b77d763980) at widgets/qabstractbutton.cpp:857
#20 0x00007f7cdcb7d910 in Konsole::IncrementalSearchBar::eventFilter (this=0x55b77d786170, watched=0x55b77d7859b0, event=0x7fff29dc1760) at ./src/IncrementalSearchBar.cpp:221
#21 0x00007f7cdb5bc5fb in QCoreApplicationPrivate::sendThroughObjectEventFilters (event=<optimized out>, receiver=<optimized out>) at kernel/qcoreapplication.cpp:1186
#22 QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=receiver@entry=0x55b77d7859b0, event=event@entry=0x7fff29dc1760) at kernel/qcoreapplication.cpp:1175
#23 0x00007f7cdbf84541 in QApplicationPrivate::notify_helper (this=this@entry=0x55b77cff0240, receiver=receiver@entry=0x55b77d7859b0, e=e@entry=0x7fff29dc1760) at kernel/qapplication.cpp:3728
#24 0x00007f7cdbf8c852 in QApplication::notify (this=<optimized out>, receiver=0x55b77d7859b0, e=0x7fff29dc1760) at kernel/qapplication.cpp:3115
#25 0x00007f7cdb5bc8e9 in QCoreApplication::notifyInternal2 (receiver=0x55b77d7859b0, event=0x7fff29dc1760) at ../../include/QtCore/5.12.2/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:322
#26 0x00007f7cdbfe152a in QWidgetWindow::event (event=0x7fff29dc1760, this=0x55b77d6170e0) at kernel/qwidgetwindow.cpp:274
#27 QWidgetWindow::event (this=0x55b77d6170e0, event=0x7fff29dc1760) at kernel/qwidgetwindow.cpp:224
#28 0x00007f7cdbf84551 in QApplicationPrivate::notify_helper (this=this@entry=0x55b77cff0240, receiver=receiver@entry=0x55b77d6170e0, e=e@entry=0x7fff29dc1760) at kernel/qapplication.cpp:3736
#29 0x00007f7cdbf8b930 in QApplication::notify (this=0x55b77cff0040, receiver=0x55b77d6170e0, e=0x7fff29dc1760) at kernel/qapplication.cpp:3483
#30 0x00007f7cdb5bc8e9 in QCoreApplication::notifyInternal2 (receiver=0x55b77d6170e0, event=0x7fff29dc1760) at ../../include/QtCore/5.12.2/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:322
#31 0x00007f7cdb98efd3 in QGuiApplicationPrivate::processKeyEvent (e=0x55b77d7857e0) at kernel/qguiapplication.cpp:2228
#32 0x00007f7cdb994055 in QGuiApplicationPrivate::processWindowSystemEvent (e=e@entry=0x55b77d7857e0) at kernel/qguiapplication.cpp:1843
#33 0x00007f7cdb96e05b in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1071
#34 0x00007f7cd641c67a in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105
#35 0x00007f7cd9a379ee in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007f7cd9a37c88 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007f7cd9a37d1c in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007f7cdb610047 in QEventDispatcherGlib::processEvents (this=0x55b77d048eb0, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#39 0x00007f7cdb5bb5bb in QEventLoop::exec (this=this@entry=0x7fff29dc1a70, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#40 0x00007f7cdb5c35e2 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#41 0x00007f7cdb988e4c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1779
#42 0x00007f7cdbf844c5 in QApplication::exec () at kernel/qapplication.cpp:2893
#43 0x00007f7cdce5ef1a in kdemain (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:207
#44 0x00007f7cdcc72b6b in __libc_start_main (main=0x55b77ca5e050 <main>, argc=1, argv=0x7fff29dc1d28, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff29dc1d18) at ../csu/libc-start.c:308
#45 0x000055b77ca5e08a in _start ()
[Inferior 1 (process 3309) detached]
Comment 1 Kurt Hindenburg 2020-03-28 15:42:56 UTC
The code in https://bugs.kde.org/show_bug.cgi?id=360146 was changed in 2017 which should have fixed that.

I can't produce any crashes on master using stress to  get high CPU
Comment 2 rainer+kdebugs 2020-04-01 10:04:12 UTC
Are the changes you are referring to in 18.12.3?

It's possible that low memory and/or extremely long scrollback histories were involved in the crash.
Comment 3 Justin Zobel 2020-11-03 01:21:28 UTC
Can you please confirm if this is still happening on recent konsole versions?
Comment 4 Bug Janitor Service 2020-11-18 04:33:55 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 5 Bug Janitor Service 2020-12-03 04:34:12 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!