Bug 372619 - Konsole crashed while switching tabs
Summary: Konsole crashed while switching tabs
Status: RESOLVED FIXED
Alias: None
Product: konsole
Classification: Applications
Component: general (show other bugs)
Version: 16.08.2
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2016-11-18 10:12 UTC by Laurent RINEAU
Modified: 2019-07-12 03:24 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Laurent RINEAU 2016-11-18 10:12:44 UTC
Application: konsole (16.08.2)

Qt Version: 5.6.1
Frameworks Version: 5.27.0
Operating System: Linux 4.8.6-201.fc24.x86_64 x86_64
Distribution: "Fedora release 24 (Twenty Four)"

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

I was rather active just before the crash typing quicking in several tabs. I think the crashed occured during a switch of tab, in a given window.

-- Backtrace:
Application: Konsole (konsole), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
84	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7fd97c035940 (LWP 56773))]

Thread 3 (Thread 0x7fd95cd7b700 (LWP 56820)):
#0  0x00007fd97617a1cd in read () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fd972398660 in g_wakeup_acknowledge (__nbytes=16, __buf=0x7fd95cd7aa30, __fd=<optimized out>) at /usr/include/bits/unistd.h:44
#2  0x00007fd972398660 in g_wakeup_acknowledge (wakeup=0x7fd9580015b0) at gwakeup.c:210
#3  0x00007fd9723554d6 in g_main_context_check (context=context@entry=0x7fd950000990, max_priority=2147483647, fds=fds@entry=0x7fd950003020, n_fds=n_fds@entry=1) at gmain.c:3632
#4  0x00007fd9723559a4 in g_main_context_iterate (context=context@entry=0x7fd950000990, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3837
#5  0x00007fd972355b1c in g_main_context_iteration (context=0x7fd950000990, may_block=may_block@entry=1) at gmain.c:3901
#6  0x00007fd976f8424b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fd9500008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:419
#7  0x00007fd976f335ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fd95cd7ac40, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#8  0x00007fd976d92343 in QThread::exec() (this=this@entry=0x7fd97c0fc060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread.cpp:500
#9  0x00007fd97c087559 in QDBusConnectionManager::run() (this=0x7fd97c0fc060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:189
#10 0x00007fd976d9699a in QThreadPrivate::start(void*) (arg=0x7fd97c0fc060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:341
#11 0x00007fd974b4f5ca in start_thread (arg=0x7fd95cd7b700) at pthread_create.c:333
#12 0x00007fd97618a0ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7fd95e8ac700 (LWP 56795)):
#0  0x00007fd97617e56d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007fd973bdef80 in _xcb_conn_wait (__timeout=-1, __nfds=1, __fds=0x7fd95e8abb80) at /usr/include/bits/poll2.h:46
#2  0x00007fd973bdef80 in _xcb_conn_wait (c=c@entry=0x563d39667ca0, cond=cond@entry=0x563d39667ce0, vector=vector@entry=0x0, count=count@entry=0x0) at xcb_conn.c:459
#3  0x00007fd973be0b79 in xcb_wait_for_event (c=0x563d39667ca0) at xcb_in.c:693
#4  0x00007fd962c6bda9 in QXcbEventReader::run() (this=0x563d39676d30) at qxcbconnection.cpp:1325
#5  0x00007fd976d9699a in QThreadPrivate::start(void*) (arg=0x563d39676d30) at thread/qthread_unix.cpp:341
#6  0x00007fd974b4f5ca in start_thread (arg=0x7fd95e8ac700) at pthread_create.c:333
#7  0x00007fd97618a0ed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7fd97c035940 (LWP 56773)):
[KCrash Handler]
#6  0x00007fd97baf5d90 in QVector<QString>::freeData(QTypedArrayData<QString>*) [clone .isra.22] () at /lib64/libkonsoleprivate.so.16
#7  0x00007fd97baf7885 in Konsole::UnixProcessInfo::readProcessInfo(int, bool) () at /lib64/libkonsoleprivate.so.16
#8  0x00007fd97bb17d68 in Konsole::Session::updateSessionProcessInfo() () at /lib64/libkonsoleprivate.so.16
#9  0x00007fd97bb17e57 in Konsole::Session::updateWorkingDirectory() () at /lib64/libkonsoleprivate.so.16
#10 0x00007fd97bb1877a in Konsole::Session::getDynamicTitle() () at /lib64/libkonsoleprivate.so.16
#11 0x00007fd97bb22753 in Konsole::SessionController::snapshot() () at /lib64/libkonsoleprivate.so.16
#12 0x00007fd976f5cebc in QMetaObject::activate(QObject*, int, int, void**) (a=0x7ffee940c550, r=0x563d3be46a40, this=<optimized out>) at ../../src/corelib/kernel/qobject_impl.h:124
#13 0x00007fd976f5cebc in QMetaObject::activate(QObject*, int, int, void**) (sender=sender@entry=0x563d3bc59170, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3715
#14 0x00007fd976f5d3b7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0x563d3bc59170, m=m@entry=0x7fd97716dd80 <QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x0) at kernel/qobject.cpp:3595
#15 0x00007fd976fcf3f0 in QTimer::timeout(QTimer::QPrivateSignal) (this=this@entry=0x563d3bc59170) at .moc/moc_qtimer.cpp:198
#16 0x00007fd976f68f88 in QTimer::timerEvent(QTimerEvent*) (this=0x563d3bc59170, e=<optimized out>) at kernel/qtimer.cpp:247
#17 0x00007fd976f5db8b in QObject::event(QEvent*) (this=0x563d3bc59170, e=<optimized out>) at kernel/qobject.cpp:1278
#18 0x00007fd977a5cc0c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x563d3bc59170, e=0x7ffee940c860) at kernel/qapplication.cpp:3804
#19 0x00007fd977a620ef in QApplication::notify(QObject*, QEvent*) (this=0x563d39653550, receiver=0x563d3bc59170, e=0x7ffee940c860) at kernel/qapplication.cpp:3561
#20 0x00007fd976f347aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x563d3bc59170, event=event@entry=0x7ffee940c860) at kernel/qcoreapplication.cpp:1015
#21 0x00007fd976f837ab in QTimerInfoList::activateTimers() (event=0x7ffee940c860, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:225
#22 0x00007fd976f837ab in QTimerInfoList::activateTimers() (this=0x563d396a5bb0) at kernel/qtimerinfo_unix.cpp:637
#23 0x00007fd976f83d01 in timerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:176
#24 0x00007fd9723556ba in g_main_context_dispatch (context=0x7fd9580016f0) at gmain.c:3154
#25 0x00007fd9723556ba in g_main_context_dispatch (context=context@entry=0x7fd9580016f0) at gmain.c:3769
#26 0x00007fd972355a70 in g_main_context_iterate (context=context@entry=0x7fd9580016f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3840
#27 0x00007fd972355b1c in g_main_context_iteration (context=0x7fd9580016f0, may_block=may_block@entry=1) at gmain.c:3901
#28 0x00007fd976f8424b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x563d3969f3f0, flags=...) at kernel/qeventdispatcher_glib.cpp:419
#29 0x00007fd976f335ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffee940cab0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:204
#30 0x00007fd976f3b17c in QCoreApplication::exec() () at kernel/qcoreapplication.cpp:1285
#31 0x00007fd97bdd6a23 in kdemain () at /lib64/libkdeinit5_konsole.so
#32 0x00007fd9760a7731 in __libc_start_main (main=0x563d38ac9a60 <main>, argc=3, argv=0x7ffee940cd78, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffee940cd68) at ../csu/libc-start.c:289
#33 0x0000563d38ac9a99 in _start ()

Reported using DrKonqi
Comment 1 Martin Sandsmark 2016-11-20 13:42:48 UTC
Git commit 40b1f0e851c115e1a2df79e7ec4bc4fe726d9e43 by Martin T. H. Sandsmark.
Committed on 20/11/2016 at 13:40.
Pushed by sandsmark into branch 'master'.

Only use foreground process info if valid

getProcessInfo() returned _foregroundProcessInfo without checking the
return value of updateForegroundProcessInfo() indicating whether
_foregroundProcessInfo was non-existent or invalid.

I think this might be the solution to a bunch of recent crash bugs,
but not closing them as I can't test.

Also skipping RB because it is a simple patch and RB is down from here.
Related: bug 372401, bug 372620, bug 372593

M  +1    -2    src/Session.cpp

http://commits.kde.org/konsole/40b1f0e851c115e1a2df79e7ec4bc4fe726d9e43
Comment 2 Kurt Hindenburg 2016-11-24 14:47:46 UTC
Git commit d28afb6664459cf28d73d7617b74c49711ce7a86 by Kurt Hindenburg, on behalf of Martin T. H. Sandsmark.
Committed on 24/11/2016 at 14:42.
Pushed by hindenburg into branch 'Applications/16.12'.

Only use foreground process info if valid

getProcessInfo() returned _foregroundProcessInfo without checking the
return value of updateForegroundProcessInfo() indicating whether
_foregroundProcessInfo was non-existent or invalid.

I think this might be the solution to a bunch of recent crash bugs,
but not closing them as I can't test.

Also skipping RB because it is a simple patch and RB is down from here.
Related: bug 372401, bug 372620, bug 372593
(cherry picked from commit 40b1f0e851c115e1a2df79e7ec4bc4fe726d9e43)

M  +1    -2    src/Session.cpp

https://commits.kde.org/konsole/d28afb6664459cf28d73d7617b74c49711ce7a86
Comment 3 tcanabrava 2019-06-24 20:33:45 UTC
sounds fixed already, can you test the new version?
Comment 4 Kurt Hindenburg 2019-07-12 03:24:47 UTC
Reopen if you can duplicate the issue in 19.08 - a lot has changed since 16.08