Bug 373633 - konsole process crashed when closing a tab
Summary: konsole process crashed when closing a tab
Status: RESOLVED WORKSFORME
Alias: None
Product: konsole
Classification: Applications
Component: general (show other bugs)
Version: 16.08.3
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Konsole Developer
URL:
Keywords: drkonqi
: 370211 371624 373016 383600 (view as bug list)
Depends on:
Blocks:
 
Reported: 2016-12-14 08:34 UTC by Antonio Larrosa
Modified: 2020-12-31 04:34 UTC (History)
5 users (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 Antonio Larrosa 2016-12-14 08:34:32 UTC
Application: konsole (16.08.3)

Qt Version: 5.7.0
Frameworks Version: 5.28.0
Operating System: Linux 4.8.9-1-default x86_64
Distribution: "openSUSE Tumbleweed"

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

I had many tabs open in two konsole windows, I decided to close several tabs I wasn't using anymore and when closing one of them, the konsole process crashed (closing the two windows).

The crash can be reproduced sometimes.

-- Backtrace:
Application: Konsole (konsole), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fb70b6ebe00 (LWP 10511))]

Thread 2 (Thread 0x7fb6efdf5700 (LWP 10513)):
#0  0x00007fb70b02368d in poll () from /lib64/libc.so.6
#1  0x00007fb7011f7876 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007fb7011f798c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007fb70761d79b in QEventDispatcherGlib::processEvents (this=0x7fb6e80008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007fb7075c71ea in QEventLoop::exec (this=this@entry=0x7fb6efdf4cd0, flags=..., flags@entry=...) at kernel/qeventloop.cpp:210
#5  0x00007fb7073f58b3 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:507
#6  0x00007fb70577f3e5 in ?? () from /usr/lib64/libQt5DBus.so.5
#7  0x00007fb7073fa558 in QThreadPrivate::start (arg=0x7fb7059f0d20) at thread/qthread_unix.cpp:344
#8  0x00007fb702ec9454 in start_thread () from /lib64/libpthread.so.0
#9  0x00007fb70b02c39f in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7fb70b6ebe00 (LWP 10511)):
[KCrash Handler]
#6  0x00007fb70afbf814 in free () from /lib64/libc.so.6
#7  0x00007fb7075f2b84 in QObjectPrivate::Connection::~Connection (this=0x4578030, __in_chrg=<optimized out>) at kernel/qobject.cpp:1056
#8  0x00007fb7075fc71c in QObjectPrivate::Connection::deref (this=<optimized out>) at kernel/qobject_p.h:156
#9  QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:977
#10 0x00007fb70854bea9 in QAction::~QAction (this=0x10dccf40, __in_chrg=<optimized out>) at kernel/qaction.cpp:570
#11 0x00007fb70854bed9 in QAction::~QAction (this=0x10dccf40, __in_chrg=<optimized out>) at kernel/qaction.cpp:594
#12 0x00007fb7075f36d1 in QObjectPrivate::deleteChildren (this=this@entry=0x248f230) at kernel/qobject.cpp:1970
#13 0x00007fb7075fca4f in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1041
#14 0x00007fb70854bea9 in QAction::~QAction (this=0x78a53a0, __in_chrg=<optimized out>) at kernel/qaction.cpp:570
#15 0x00007fb70859ca8d in QWidgetAction::~QWidgetAction (this=0x78a53a0, __in_chrg=<optimized out>) at kernel/qwidgetaction.cpp:118
#16 0x00007fb7093cf6c1 in KSelectAction::~KSelectAction (this=0x78a53a0, __in_chrg=<optimized out>) at /usr/src/debug/kwidgetsaddons-5.28.0/src/kselectaction.cpp:98
#17 0x00007fb709d32219 in KCodecAction::~KCodecAction (this=0x78a53a0, __in_chrg=<optimized out>) at /usr/src/debug/kconfigwidgets-5.28.0/src/kcodecaction.cpp:85
#18 0x00007fb7075f36d1 in QObjectPrivate::deleteChildren (this=this@entry=0x24b3480) at kernel/qobject.cpp:1970
#19 0x00007fb7075fca4f in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1041
#20 0x00007fb70acb8429 in Konsole::SessionController::~SessionController (this=0x24b3350, __in_chrg=<optimized out>) at /usr/src/debug/konsole-16.08.3/src/SessionController.cpp:212
#21 0x00007fb70acb8469 in Konsole::SessionController::~SessionController (this=0x24b3350, __in_chrg=<optimized out>) at /usr/src/debug/konsole-16.08.3/src/SessionController.cpp:222
#22 0x00007fb7075f5d90 in QObject::event (this=0x24b3350, e=<optimized out>) at kernel/qobject.cpp:1254
#23 0x00007fb70855292c in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x24b3350, e=0x3fe0bb0) at kernel/qapplication.cpp:3799
#24 0x00007fb70855a0e1 in QApplication::notify (this=0x20ad340, receiver=0x24b3350, e=0x3fe0bb0) at kernel/qapplication.cpp:3556
#25 0x00007fb7075c9200 in QCoreApplication::notifyInternal2 (receiver=0x24b3350, event=event@entry=0x3fe0bb0) at kernel/qcoreapplication.cpp:988
#26 0x00007fb7075cb98d in QCoreApplication::sendEvent (event=0x3fe0bb0, receiver=<optimized out>) at kernel/qcoreapplication.h:231
#27 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x20ab0d0) at kernel/qcoreapplication.cpp:1649
#28 0x00007fb7075cbdf8 in QCoreApplication::sendPostedEvents (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at kernel/qcoreapplication.cpp:1503
#29 0x00007fb70761d373 in postEventSourceDispatch (s=0x20f20e0) at kernel/qeventdispatcher_glib.cpp:276
#30 0x00007fb7011f7677 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#31 0x00007fb7011f78e0 in ?? () from /usr/lib64/libglib-2.0.so.0
#32 0x00007fb7011f798c in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#33 0x00007fb70761d77f in QEventDispatcherGlib::processEvents (this=0x21093c0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#34 0x00007fb7075c71ea in QEventLoop::exec (this=this@entry=0x7ffedf4d8650, flags=..., flags@entry=...) at kernel/qeventloop.cpp:210
#35 0x00007fb7075cf95c in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1261
#36 0x00007fb70b30af98 in kdemain (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/konsole-16.08.3/src/main.cpp:173
#37 0x00007fb70af63291 in __libc_start_main () from /lib64/libc.so.6
#38 0x000000000040067a in _start () at ../sysdeps/x86_64/start.S:120

Reported using DrKonqi
Comment 1 Antonio Larrosa 2016-12-14 08:37:16 UTC
Just in case it helps, I'll add here the source lines around each frame in the backtrace:

(gdb) frame 7
#7  0x00007fb7075f2b84 in QObjectPrivate::Connection::~Connection (this=0x4578030, __in_chrg=<optimized out>) at kernel/qobject.cpp:1056
1056                delete [] v;
(gdb) l
1051    QObjectPrivate::Connection::~Connection()
1052    {
1053        if (ownArgumentTypes) {
1054            const int *v = argumentTypes.load();
1055            if (v != &DIRECT_CONNECTION_ONLY)
1056                delete [] v;
1057        }
1058        if (isSlotObject)
1059            slotObj->destroyIfLastRef();
1060    }


(gdb) frame 8
#8  0x00007fb7075fc71c in QObjectPrivate::Connection::deref (this=<optimized out>) at kernel/qobject_p.h:156
156                     delete this;
(gdb) l
151             int method() const { Q_ASSERT(!isSlotObject); return method_offset + method_relative; }
152             void ref() { ref_.ref(); }
153             void deref() {
154                 if (!ref_.deref()) {
155                     Q_ASSERT(!receiver);
156                     delete this;
157                 }
158             }
159         };
160         // ConnectionList is a singly-linked list


(gdb) frame 9
#9  QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:977
977                         c->deref();
(gdb) l
972                             c->isSlotObject = false;
973                             locker.unlock();
974                             c->slotObj->destroyIfLastRef();
975                             locker.relock();
976                         }
977                         c->deref();
978                     }
979                 }
980
981                 if (!--d->connectionLists->inUse) {


(gdb) frame 10
#10 0x00007fb70854bea9 in QAction::~QAction (this=0x10dccf40, __in_chrg=<optimized out>) at kernel/qaction.cpp:570
570     QAction::~QAction()
(gdb) l
565
566
567     /*!
568         Destroys the object and frees allocated resources.
569     */
570     QAction::~QAction()
571     {
572         Q_D(QAction);
573         for (int i = d->widgets.size()-1; i >= 0; --i) {
574             QWidget *w = d->widgets.at(i);


(gdb) frame 11
#11 0x00007fb70854bed9 in QAction::~QAction (this=0x10dccf40, __in_chrg=<optimized out>) at kernel/qaction.cpp:594
594     }
(gdb) l
589                 const int id = d->alternateShortcutIds.at(i);
590                 qApp->d_func()->shortcutMap.removeShortcut(id, this);
591             }
592         }
593     #endif
594     }
595
596     /*!
597       Sets this action group to \a group. The action will be automatically
598       added to the group's list of actions.


(gdb) frame 12
#12 0x00007fb7075f36d1 in QObjectPrivate::deleteChildren (this=this@entry=0x248f230) at kernel/qobject.cpp:1970
1970            delete currentChildBeingDeleted;
(gdb) l
1965        // don't use qDeleteAll as the destructor of the child might
1966        // delete siblings
1967        for (int i = 0; i < children.count(); ++i) {
1968            currentChildBeingDeleted = children.at(i);
1969            children[i] = 0;
1970            delete currentChildBeingDeleted;
1971        }
1972        children.clear();
1973        currentChildBeingDeleted = 0;
1974        isDeletingChildren = false;


(gdb) frame 13
#13 0x00007fb7075fca4f in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1041
1041            d->deleteChildren();
(gdb) l
1036                }
1037            }
1038        }
1039
1040        if (!d->children.isEmpty())
1041            d->deleteChildren();
1042
1043        qt_removeObject(this);
1044        if (Q_UNLIKELY(qtHookData[QHooks::RemoveQObject]))
1045            reinterpret_cast<QHooks::RemoveQObjectCallback>(qtHookData[QHooks::RemoveQObject])(this);


(gdb) frame 14
#14 0x00007fb70854bea9 in QAction::~QAction (this=0x78a53a0, __in_chrg=<optimized out>) at kernel/qaction.cpp:570
570     QAction::~QAction()
(gdb) l
565
566
567     /*!
568         Destroys the object and frees allocated resources.
569     */
570     QAction::~QAction()
571     {
572         Q_D(QAction);
573         for (int i = d->widgets.size()-1; i >= 0; --i) {
574             QWidget *w = d->widgets.at(i);


(gdb) frame 15
#15 0x00007fb70859ca8d in QWidgetAction::~QWidgetAction (this=0x78a53a0, __in_chrg=<optimized out>) at kernel/qwidgetaction.cpp:118
118     QWidgetAction::~QWidgetAction()
(gdb) l
113     }
114
115     /*!
116         Destroys the object and frees allocated resources.
117     */
118     QWidgetAction::~QWidgetAction()
119     {
120         Q_D(QWidgetAction);
121         for (int i = 0; i < d->createdWidgets.count(); ++i)
122             disconnect(d->createdWidgets.at(i), SIGNAL(destroyed(QObject*)),


(gdb) frame 16
#16 0x00007fb7093cf6c1 in KSelectAction::~KSelectAction (this=0x78a53a0, __in_chrg=<optimized out>) at /usr/src/debug/kwidgetsaddons-5.28.0/src/kselectaction.cpp:98
98      KSelectAction::~KSelectAction()
(gdb) l
93      {
94          Q_D(KSelectAction);
95          d->init(this);
96      }
97
98      KSelectAction::~KSelectAction()
99      {
100         menu()->deleteLater();
101         delete d_ptr;
102     }


(gdb) frame 17
#17 0x00007fb709d32219 in KCodecAction::~KCodecAction (this=0x78a53a0, __in_chrg=<optimized out>) at /usr/src/debug/kconfigwidgets-5.28.0/src/kcodecaction.cpp:85
85      }
(gdb) l
80      }
81
82      KCodecAction::~KCodecAction()
83      {
84          delete d;
85      }
86
87      void KCodecAction::Private::init(bool showAutoOptions)
88      {
89          q->setToolBarMode(MenuMode);


(gdb) frame 18
#18 0x00007fb7075f36d1 in QObjectPrivate::deleteChildren (this=this@entry=0x24b3480) at kernel/qobject.cpp:1970
1970            delete currentChildBeingDeleted;
(gdb) l
1965        // don't use qDeleteAll as the destructor of the child might
1966        // delete siblings
1967        for (int i = 0; i < children.count(); ++i) {
1968            currentChildBeingDeleted = children.at(i);
1969            children[i] = 0;
1970            delete currentChildBeingDeleted;
1971        }
1972        children.clear();
1973        currentChildBeingDeleted = 0;
1974        isDeletingChildren = false;


(gdb) frame 19
#19 0x00007fb7075fca4f in QObject::~QObject (this=<optimized out>, __in_chrg=<optimized out>) at kernel/qobject.cpp:1041
1041            d->deleteChildren();
(gdb) l
1036                }
1037            }
1038        }
1039
1040        if (!d->children.isEmpty())
1041            d->deleteChildren();
1042
1043        qt_removeObject(this);
1044        if (Q_UNLIKELY(qtHookData[QHooks::RemoveQObject]))
1045            reinterpret_cast<QHooks::RemoveQObjectCallback>(qtHookData[QHooks::RemoveQObject])(this);


(gdb) frame 20
#20 0x00007fb70acb8429 in Konsole::SessionController::~SessionController (this=0x24b3350, __in_chrg=<optimized out>) at /usr/src/debug/konsole-16.08.3/src/SessionController.cpp:212
212     SessionController::~SessionController()
(gdb) l
207         // before outputting bookmark.
208         _bookmarkValidProgramsToClear << "bash" << "fish" << "sh";
209         _bookmarkValidProgramsToClear << "tcsh" << "zsh";
210     }
211
212     SessionController::~SessionController()
213     {
214         if (_view)
215             _view->setScreenWindow(0);
216


(gdb) frame 21
#21 0x00007fb70acb8469 in Konsole::SessionController::~SessionController (this=0x24b3350, __in_chrg=<optimized out>) at /usr/src/debug/konsole-16.08.3/src/SessionController.cpp:222
222     }
(gdb) l
217         _allControllers.remove(this);
218
219         if (!_editProfileDialog.isNull()) {
220             delete _editProfileDialog.data();
221         }
222     }
223     void SessionController::trackOutput(QKeyEvent* event)
224     {
225         Q_ASSERT(_view->screenWindow());
226
Comment 2 Christoph Feck 2017-09-06 21:11:53 UTC
*** Bug 370211 has been marked as a duplicate of this bug. ***
Comment 3 Christoph Feck 2017-09-06 21:12:20 UTC
*** Bug 371624 has been marked as a duplicate of this bug. ***
Comment 4 Christoph Feck 2017-09-06 21:12:54 UTC
*** Bug 373016 has been marked as a duplicate of this bug. ***
Comment 5 Christoph Feck 2017-09-06 21:13:14 UTC
*** Bug 383600 has been marked as a duplicate of this bug. ***
Comment 6 Justin Zobel 2020-12-01 23:09:02 UTC
Thanks for the report, Antonio.

As it's been a while since this was reported, can you please test and confirm if this issue is still occurring or if this bug report can be marked as resolved.

I've set the bug status to "needsinfo" pending your response, please change back to "reported" or "resolved" when you respond, thanks.
Comment 7 Bug Janitor Service 2020-12-16 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 8 Bug Janitor Service 2020-12-31 04:34:19 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!