Bug 440045

Summary: Konsole crash while executing many (~10000) verbose curl requests
Product: [Applications] konsole Reporter: rainer+kdebugs
Component: generalAssignee: Konsole Developer <konsole-devel>
Status: RESOLVED WORKSFORME    
Severity: crash CC: martin.sandsmark
Priority: NOR Keywords: drkonqi
Version: 20.08.2   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description rainer+kdebugs 2021-07-19 16:34:55 UTC
Application: konsole (20.08.2)

Qt Version: 5.14.2
Frameworks Version: 5.74.0
Operating System: Linux 5.8.0-55-generic x86_64
Windowing system: X11
Distribution: Ubuntu 20.10

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

for j in {1..100}; do curl -v -H 'X-forwarded-for: 48.74.15.90'  $(for i in {1..100}; do echo http://httpbin.org/status/302" -H "accept: text/plain"; done); done

with an nginx/openresty container processing those requests and printing logs in another, partially covered konsole window.

I believe I may have switched focus/uncovered one of the windows or clicked into one before konsole crashed.

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

[KCrash Handler]
#4  0x00007f5371c6950a in Konsole::Screen::copyFromHistory (this=this@entry=0x559e4d6db430, dest=dest@entry=0x559e4d53b150, startLine=startLine@entry=82750, count=count@entry=38) at ./src/Screen.cpp:492
#5  0x00007f5371c69738 in Konsole::Screen::getImage (this=this@entry=0x559e4d6db430, dest=0x559e4d53b150, size=size@entry=6612, startLine=82750, endLine=endLine@entry=82787) at ./src/Screen.cpp:543
#6  0x00007f5371c6c6df in Konsole::ScreenWindow::getImage (this=0x559e4bd09f60) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qglobal.h:665
#7  0x00007f5371c98e5c in Konsole::TerminalDisplay::updateImage (this=0x559e4cc4d1b0) at /usr/include/c++/10/bits/atomic_base.h:420
#8  0x00007f53706222e6 in QtPrivate::QSlotObjectBase::call (a=0x7ffd78738550, r=0x559e4cc4d1b0, this=0x559e4d617060) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#9  doActivate<false> (sender=0x559e4bd09f60, signal_index=3, argv=0x7ffd78738550) at kernel/qobject.cpp:3870
#10 0x00007f53706222e6 in QtPrivate::QSlotObjectBase::call (a=0x7ffd78738630, r=0x559e4bd09f60, this=0x559e4d616f40) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#11 doActivate<false> (sender=0x559e4ccb0e20, signal_index=12, argv=0x7ffd78738630, argv@entry=0x0) at kernel/qobject.cpp:3870
#12 0x00007f537061c068 in QMetaObject::activate (sender=sender@entry=0x559e4ccb0e20, m=m@entry=0x7f5371d0a400 <Konsole::Emulation::staticMetaObject>, local_signal_index=local_signal_index@entry=9, argv=argv@entry=0x0) at kernel/qobject.cpp:3930
#13 0x00007f5371c06347 in Konsole::Emulation::outputChanged (this=this@entry=0x559e4ccb0e20) at ./obj-x86_64-linux-gnu/src/konsoleprivate_autogen/EWIEGA46WW/moc_Emulation.cpp:524
#14 0x00007f5371c3ac22 in Konsole::Emulation::showBulk (this=0x559e4ccb0e20) at ./src/Emulation.cpp:278
#15 0x00007f53706222e6 in QtPrivate::QSlotObjectBase::call (a=0x7ffd78738780, r=0x559e4ccb0e20, this=0x559e4c522920) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#16 doActivate<false> (sender=0x559e4ccb0e90, signal_index=3, argv=argv@entry=0x7ffd78738780) at kernel/qobject.cpp:3870
#17 0x00007f537061c068 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f5370878300 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffd78738780) at kernel/qobject.cpp:3930
#18 0x00007f5370625e2e in QTimer::timeout (this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:205
#19 0x00007f537061858f in QObject::event (this=0x559e4ccb0e90, e=0x7ffd787388f0) at kernel/qobject.cpp:1316
#20 0x00007f53710a4013 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x559e4ccb0e90, e=0x7ffd787388f0) at kernel/qapplication.cpp:3685
#21 0x00007f53705ec1ca in QCoreApplication::notifyInternal2 (receiver=0x559e4ccb0e90, event=0x7ffd787388f0) at ../../include/QtCore/../../src/corelib/kernel/qobject.h:153
#22 0x00007f5370642b73 in QTimerInfoList::activateTimers (this=0x559e4bcd3b80) at kernel/qtimerinfo_unix.cpp:643
#23 0x00007f53706434b4 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183
#24 idleTimerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:230
#25 0x00007f536ebe962b in g_main_dispatch (context=0x7f5364005000) at ../../../glib/gmain.c:3325
#26 g_main_context_dispatch (context=0x7f5364005000) at ../../../glib/gmain.c:4016
#27 0x00007f536ebe98d8 in g_main_context_iterate (context=context@entry=0x7f5364005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4092
#28 0x00007f536ebe99a3 in g_main_context_iteration (context=0x7f5364005000, may_block=may_block@entry=1) at ../../../glib/gmain.c:4157
#29 0x00007f5370643843 in QEventDispatcherGlib::processEvents (this=0x559e4bd371e0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#30 0x00007f53705eaa4b in QEventLoop::exec (this=this@entry=0x7ffd78738b30, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:136
#31 0x00007f53705f2fc6 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:118
#32 0x00007f5371f2486f in kdemain () from /usr/lib/x86_64-linux-gnu/libkdeinit5_konsole.so
#33 0x00007f5371d37cb2 in __libc_start_main (main=0x559e4a6cc060, argc=1, argv=0x7ffd78738e08, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffd78738df8) at ../csu/libc-start.c:314
#34 0x0000559e4a6cc09e in _start ()
[Inferior 1 (process 70869) detached]

Possible duplicates by query: bug 436327, bug 392694, bug 373662, bug 333610, bug 323889.

Reported using DrKonqi
Comment 1 Martin Sandsmark 2021-07-20 12:57:28 UTC
I can't reproduce it in master with the `spam-stderr.c` test I added a long time ago to trigger things like this.

And since more or less all of the related code here has been rewritten to enable reflowing etc., and seems to have been ported away from using raw memory access to C++ iterators, I suspect it has been fixed as a side-effect.
Comment 2 Justin Zobel 2022-12-01 05:21:55 UTC
Thank you for reporting this issue in KDE software. As it was reported on an older version, can we please ask you to see if you can reproduce the issue with a more recent software version?  
  
If you can confirm this issue still exists in a recent version, please change the version field and the status to "REPORTED" when replying. Thank you!
Comment 3 rainer+kdebugs 2022-12-01 12:11:39 UTC
I cannot reproduce this with konsole 21.12.3, thus I assume that Martin Sandsmark's remark is correct.