[konsole] [Bug 421115] New: Konsole crashes on large output of dots and numbers

Wilhelm Wijkander bugzilla_noreply at kde.org
Wed May 6 18:43:54 BST 2020


https://bugs.kde.org/show_bug.cgi?id=421115

            Bug ID: 421115
           Summary: Konsole crashes on large output of dots and numbers
           Product: konsole
           Version: 19.12.1
          Platform: Fedora RPMs
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: konsole-devel at kde.org
          Reporter: kdebugzilla at 0x5e.se
  Target Milestone: ---

SUMMARY
Encountered when running freebsd-update on a remote server, konsole crashed
when the update program printed a progress bar consisting of e.g.
"50650....50660....50670....50680...."

STEPS TO REPRODUCE
1. in bash, run the following example loop: 'i="0"; while [ $i -lt 100000 ]; do
echo -n ".1" && i=$[$i+1]; done'
2. move mouse pointer around over output

OBSERVED RESULT
konsole hangs and crashes after a second or two

EXPECTED RESULT
nothing special

SOFTWARE/OS VERSIONS
Fedora 31 running Sway as window manager

KDE Frameworks 5.68.0
Qt 5.13.2 (built against 5.13.2)
The wayland windowing system

ADDITIONAL INFORMATION
Trying the same thing on a different system with konsole 19.12.1 using KDE
Plasma and same KDE/Qt versions as above *but on Xorg/xcb* does not cause the
same problem
Trying the above loop with only dots does not exhibit the same issue, URL
parsing?




Here's a gdb "thread apply all bt full" from the core dump:

==cut==

Thread 3 (Thread 0x7feaabebe700 (LWP 109006)):
#0  futex_wait_cancelable (private=0, expected=0, futex_word=0x5646468c4738) at
../sysdeps/unix/sysv/linux/futex-internal.h:80
        __ret = -512
        oldtype = 0
        err = <optimized out>
        oldtype = <optimized out>
        err = <optimized out>
        __ret = <optimized out>
        resultvar = <optimized out>
        __arg4 = <optimized out>
        __arg3 = <optimized out>
        __arg2 = <optimized out>
        __arg1 = <optimized out>
        _a4 = <optimized out>
        _a3 = <optimized out>
        _a2 = <optimized out>
        _a1 = <optimized out>
#1  __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5646468c46e8,
cond=0x5646468c4710) at pthread_cond_wait.c:508
        spin = 0
        buffer = {__routine = 0x7feac231cac0 <__condvar_cleanup_waiting>, __arg
= 0x7feaabebdc80, __canceltype = 0, __prev = 0x0}
        cbuffer = {wseq = 0, cond = 0x5646468c4710, mutex = 0x5646468c46e8,
private = 0}
        err = <optimized out>
        g = 0
        flags = <optimized out>
        g1_start = <optimized out>
        signals = <optimized out>
        result = 0
        wseq = 0
        seq = 0
        private = 0
        maxspin = <optimized out>
        err = <optimized out>
        result = <optimized out>
        wseq = <optimized out>
        g = <optimized out>
        seq = <optimized out>
        flags = <optimized out>
        private = <optimized out>
        signals = <optimized out>
        g1_start = <optimized out>
        spin = <optimized out>
        buffer = <optimized out>
        cbuffer = <optimized out>
        s = <optimized out>
#2  __pthread_cond_wait (cond=0x5646468c4710, mutex=0x5646468c46e8) at
pthread_cond_wait.c:638
No locals.
#3  0x00007feab0e2f19b in cnd_wait (mtx=0x5646468c46e8, cond=0x5646468c4710) at
../include/c11/threads_posix.h:155
No locals.
#4  util_queue_thread_func (input=input at entry=0x564646780d90) at
../src/util/u_queue.c:272
        job = <optimized out>
        queue = 0x5646468c46b0
        thread_index = 0
#5  0x00007feab0e2edab in impl_thrd_routine (p=<optimized out>) at
../include/c11/threads_posix.h:87
        pack = {func = 0x7feab0e2f120 <util_queue_thread_func>, arg =
0x564646780d90}
#6  0x00007feac23164e2 in start_thread (arg=<optimized out>) at
pthread_create.c:479
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140645883438848,
7918327698320108514, 140725692734558, 140725692734559, 140725692734560,
140645883436736, -7910895172605334558, -7911125299989599262}, mask_was_saved =
0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
canceltype = 0}}}
        not_first_call = 0
#7  0x00007feac4d496a3 in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.

Thread 2 (Thread 0x7feab213a700 (LWP 109005)):
#0  0x00007feac4d3ea3f in __GI___poll (fds=0x7feaac0029e0, nfds=2, timeout=-1)
at ../sysdeps/unix/sysv/linux/poll.c:29
        resultvar = 18446744073709551100
        sc_cancel_oldtype = 0
        sc_ret = <optimized out>
#1  0x00007feac1a4886e in g_main_context_poll (priority=<optimized out>,
n_fds=2, fds=0x7feaac0029e0, timeout=<optimized out>, context=0x7feaac000c30)
at ../glib/gmain.c:4253
        ret = <optimized out>
        errsv = <optimized out>
        poll_func = 0x7feac1a585e0 <g_poll>
        poll_func = <optimized out>
        ret = <optimized out>
        errsv = <optimized out>
#2  g_main_context_iterate (context=context at entry=0x7feaac000c30,
block=block at entry=1, dispatch=dispatch at entry=1, self=<optimized out>) at
../glib/gmain.c:3949
        max_priority = 2147483647
        timeout = -1
        some_ready = <optimized out>
        nfds = 2
        allocated_nfds = <optimized out>
        fds = 0x7feaac0029e0
#3  0x00007feac1a489a3 in g_main_context_iteration (context=0x7feaac000c30,
may_block=may_block at entry=1) at ../glib/gmain.c:4015
        retval = <optimized out>
#4  0x00007feac35c7885 in QEventDispatcherGlib::processEvents
(this=0x7feaac000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
        d = 0x7feaac000b80
        canWait = true
        savedFlags = {i = 0}
        result = <optimized out>
#5  0x00007feac357123b in QEventLoop::exec (this=this at entry=0x7feab2139d30,
flags=..., flags at entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:140
        d = 0x7feaac003670
        locker = {val = 94859829457392}
        ref = <optimized out>
        app = <optimized out>
#6  0x00007feac33c1cd5 in QThread::exec (this=this at entry=0x7feac2b27060
<(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
../../include/QtCore/../../src/corelib/global/qflags.h:120
        d = 0x564646703180
        locker = {val = 94859829457392}
        eventLoop = {<QObject> = {_vptr.QObject = 0x7feac382da08 <vtable for
QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata =
0x7feac3716860 <qt_meta_stringdata_QObject>, data = 0x7feac3716740
<qt_meta_data_QObject>, static_metacall = 0x7feac35a4b70
<QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x7feaac003670},
static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7feac3719780
<qt_meta_stringdata_Qt>, data = 0x7feac3716980 <qt_meta_data_Qt>,
static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static
staticMetaObject = {d = {superdata = 0x7feac3825ba0
<QObject::staticMetaObject>, stringdata = 0x7feac3710ba0
<qt_meta_stringdata_QEventLoop>, data = 0x7feac3710b40
<qt_meta_data_QEventLoop>, static_metacall = 0x7feac3570f50
<QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}}
        returnCode = <optimized out>
#7  0x00007feac2aa3f6a in QDBusConnectionManager::run (this=0x7feac2b27060
<(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
qdbusconnection.cpp:178
        locker = <optimized out>
#8  0x00007feac33c2e26 in QThreadPrivate::start (arg=0x7feac2b27060 <(anonymous
namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
thread/qthread_unix.cpp:360
        thr = 0x7feac2b27060 <(anonymous
namespace)::Q_QGS__q_manager::innerFunction()::holder>
        data = <optimized out>
        __clframe = {__cancel_routine = 0x7feac33c2560
<QThreadPrivate::finish(void*)>, __cancel_arg = 0x7feac2b27060 <(anonymous
namespace)::Q_QGS__q_manager::innerFunction()::holder>, __do_it = 1,
__cancel_type = <optimized out>}
#9  0x00007feac23164e2 in start_thread (arg=<optimized out>) at
pthread_create.c:479
        ret = <optimized out>
        pd = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140645986707200,
7918327698320108514, 140725692739694, 140725692739695, 140725692739888,
140645986705088, -7910879296258724894, -7911125299989599262}, mask_was_saved =
0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
canceltype = 0}}}
        not_first_call = 0
#10 0x00007feac4d496a3 in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:95
No locals.

Thread 1 (Thread 0x7feabf351840 (LWP 109004)):
#0  __GI_raise (sig=sig at entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
        set = {__val = {0, 0, 140645988626574, 140725692739328, 1,
140646254462161, 94859836543744, 94859840941312, 206158430256, 140725692739288,
140725692739024, 2724203728749157888, 140725692739007, 94859836543768,
140646277213890, 1}}
        pid = <optimized out>
        tid = <optimized out>
        ret = <optimized out>
#1  0x00007feac4c6d8d9 in __GI_abort () at abort.c:79
        save_stage = 1
        act = {__sigaction_handler = {sa_handler = 0x7feab230fe6d, sa_sigaction
= 0x7feab230fe6d}, sa_mask = {__val = {0, 140725692739760, 140725692739528,
94859829366912, 140725692739984, 3, 140646274543028, 94859829403516,
2724203728749157888, 140725692739528, 94859829366912, 3, 140725692739528,
140725692739760, 140646274543305, 1181483013}}, sa_flags = -1679598080,
sa_restorer = 0x7ffd40ed2fc8}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x00007feac338cb25 in qt_message_fatal (context=..., message=<synthetic
pointer>...) at global/qlogging.cpp:1907
No locals.
#3  QMessageLogger::fatal (this=this at entry=0x7ffd40ed30b0,
msg=msg at entry=0x7feab230fe30 "The Wayland connection broke. Did the Wayland
compositor die?") at global/qlogging.cpp:888
        message = <optimized out>
        ap = {{gp_offset = 16, fp_offset = 48, overflow_arg_area =
0x7ffd40ed30b0, reg_save_area = 0x7ffd40ed2ff0}}
#4  0x00007feab225f84b in QtWaylandClient::QWaylandDisplay::checkError
(this=<optimized out>) at /usr/include/qt5/QtCore/qlogging.h:91
        ecode = <optimized out>
#5  QtWaylandClient::QWaylandDisplay::checkError (this=<optimized out>) at
qwaylanddisplay.cpp:192
        ecode = <optimized out>
#6  0x00007feab226f3fe in QtWaylandClient::QWaylandDisplay::flushRequests
(this=0x5646466ed080) at qwaylanddisplay.cpp:210
No locals.
#7  0x00007feac359c97b in QMetaObject::activate (sender=0x5646466fc220,
signalOffset=<optimized out>, local_signal_index=<optimized out>,
argv=<optimized out>) at kernel/qobject.cpp:3809
        methodIndex = <optimized out>
        method_relative = <optimized out>
        callFunction = 0x7feab229c920
<QtWaylandClient::QWaylandDisplay::qt_static_metacall(QObject*,
QMetaObject::Call, int, void**)>
        receiver = 0x5646466ed080
        receiverInSameThread = <optimized out>
        sw = {receiver = 0x5646466ed080, previousSender = 0x0, currentSender =
{sender = 0x5646466fc220, signal = 4, ref = 1}, switched = true}
        c = 0x5646466f4750
        last = 0x5646466f4750
        locker = {val = 140646279238464}
        connectionLists = {connectionLists = 0x5646466edeb0}
        list = <optimized out>
        currentThreadId = 0x7feabf351840
        signal_index = 4
        empty_argv = {0x0}
#8  0x00007feac35c78c7 in QEventDispatcherGlib::processEvents
(this=0x5646466fc220, flags=...) at kernel/qeventdispatcher_glib.cpp:430
        d = 0x5646466fe7f0
        canWait = true
        savedFlags = {i = 0}
        result = <optimized out>
#9  0x00007feac357123b in QEventLoop::exec (this=this at entry=0x7ffd40ed32b0,
flags=..., flags at entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:140
        d = 0x5646471fbf90
        locker = {val = 94859829348144}
        ref = <optimized out>
        app = <optimized out>
#10 0x00007feac3579116 in QCoreApplication::exec () at
../../include/QtCore/../../src/corelib/global/qflags.h:120
        threadData = 0x5646466e8620
        eventLoop = {<QObject> = {_vptr.QObject = 0x7feac382da08 <vtable for
QEventLoop+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata =
0x7feac3716860 <qt_meta_stringdata_QObject>, data = 0x7feac3716740
<qt_meta_data_QObject>, static_metacall = 0x7feac35a4b70
<QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x5646471fbf90},
static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7feac3719780
<qt_meta_stringdata_Qt>, data = 0x7feac3716980 <qt_meta_data_Qt>,
static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static
staticMetaObject = {d = {superdata = 0x7feac3825ba0
<QObject::staticMetaObject>, stringdata = 0x7feac3710ba0
<qt_meta_stringdata_QEventLoop>, data = 0x7feac3710b40
<qt_meta_data_QEventLoop>, static_metacall = 0x7feac3570f50
<QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}}
        returnCode = <optimized out>
#11 0x00007feac3947360 in QGuiApplication::exec () at
kernel/qguiapplication.cpp:1795
No locals.
#12 0x00007feac3ee6a29 in QApplication::exec () at kernel/qapplication.cpp:2859
No locals.
#13 0x00007feac4e44825 in kdemain (argc=<optimized out>, argv=<optimized out>)
at /usr/src/debug/konsole5-19.12.1-1.fc31.x86_64/src/main.cpp:229
        startupOption = <optimized out>
        app = <optimized out>
        about = {static staticMetaObject = {d = {superdata = 0x0, stringdata =
0x7feac468b3c0 <qt_meta_stringdata_KAboutData>, data = 0x7feac468b2c0
<qt_meta_data_KAboutData>, static_metacall = 0x7feac4629fe0
<KAboutData::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x564646702850}
        parser = {value = 0x564646701c60, d = 0x564646701c80}
        args = {<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data
fields>}, {p = {static shared_null = {ref = {atomic = {_q_value =
{<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data
fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x564646703cd0},
d = 0x564646703cd0}}, <No data fields>}
        customCommand = {<QList<QString>> = {<QListSpecialMethods<QString>> =
{<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value =
{<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = -1}, <No data
fields>}}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7feac364aa80
<QListData::shared_null>}, d = 0x7feac364aa80 <QListData::shared_null>}}, <No
data fields>}
        dbusService = {<QObject> = {_vptr.QObject = 0x7feac46c8048 <vtable for
KDBusService+16>, static staticMetaObject = {d = {superdata = 0x0, stringdata =
0x7feac3716860 <qt_meta_stringdata_QObject>, data = 0x7feac3716740
<qt_meta_data_QObject>, static_metacall = 0x7feac35a4b70
<QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x56464670df60},
static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7feac3719780
<qt_meta_stringdata_Qt>, data = 0x7feac3716980 <qt_meta_data_Qt>,
static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static
staticMetaObject = {d = {superdata = 0x7feac3825ba0
<QObject::staticMetaObject>, stringdata = 0x7feac46c3440
<qt_meta_stringdata_KDBusService>, data = 0x7feac46c3300
<qt_meta_data_KDBusService>, static_metacall = 0x7feac46b9f10
<KDBusService::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x56464670d730}
        migrate = {d = 0x56464670da20}
        konsoleApp = {<QObject> = {_vptr.QObject = 0x7feac4e610a8 <vtable for
Konsole::Application+16>, static staticMetaObject = {d = {superdata = 0x0,
stringdata = 0x7feac3716860 <qt_meta_stringdata_QObject>, data = 0x7feac3716740
<qt_meta_data_QObject>, static_metacall = 0x7feac35a4b70
<QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>,
relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x56464670e210},
static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7feac3719780
<qt_meta_stringdata_Qt>, data = 0x7feac3716980 <qt_meta_data_Qt>,
static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static
staticMetaObject = {d = {superdata = 0x7feac3825ba0
<QObject::staticMetaObject>, stringdata = 0x7feac4e557c0
<qt_meta_stringdata_Konsole__Application>, data = 0x7feac4e556e0
<qt_meta_data_Konsole__Application>, static_metacall = 0x7feac4e2bd40
<Konsole::Application::qt_static_metacall(QObject*, QMetaObject::Call, int,
void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, _backgroundInstance =
0x0, m_parser = {value = 0x564646701c60, d = 0x564646701c80}, m_customCommand =
{<QList<QString>> = {<QListSpecialMethods<QString>> = {<No data fields>}, {p =
{static shared_null = {ref = {atomic = {_q_value = {<std::__atomic_base<int>> =
{static _S_alignment = 4, _M_i = -1}, <No data fields>}}}, alloc = 0, begin =
0, end = 0, array = {0x0}}, d = 0x7feac364aa80 <QListData::shared_null>}, d =
0x7feac364aa80 <QListData::shared_null>}}, <No data fields>}}
        ret = <optimized out>
#14 0x00007feac4c6f1a3 in __libc_start_main (main=0x5646462ab070 <main>,
argc=1, argv=0x7ffd40ed3568, init=<optimized out>, fini=<optimized out>,
rtld_fini=<optimized out>, stack_end=0x7ffd40ed3558) at ../csu/libc-start.c:308
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {0, -4508383311302644766,
94859824902272, 140725692740960, 0, 0, -7919284396209624094,
-7911130630401840158}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0,
0x7ffd40ed3578, 0x7feac4eb0150}, data = {prev = 0x0, cleanup = 0x0, canceltype
= 1089287544}}}
        not_first_call = <optimized out>
#15 0x00005646462ab0ae in _start ()
No symbol table info available.

==cut==

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the konsole-devel mailing list