https://bugs.kde.org/show_bug.cgi?id=387294
Bug ID: 387294 Summary: Crash in KDevelop::OutputExecuteJob Product: kdevelop Version: git master Platform: Other OS: Linux Status: UNCONFIRMED Severity: normal Priority: NOR Component: general Assignee: kdevelop-bugs-n...@kde.org Reporter: fa...@kde.org Target Milestone: --- 1) KDevelop::OutputExecuteJob: maybe doKill should disconnect childProcessStdout? 2) shutdownGracefully leads to a complete lockup when the malloc mutex is held... __lll_lock_wait_private () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95 95 2: movl %edx, %eax (gdb) bt #0 0x00007fca54b547db in __lll_lock_wait_private () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95 #1 0x00007fca54ad9b2a in __GI___libc_malloc (bytes=140506984086272) at malloc.c:2909 #2 0x00007fca557aa064 in QListData::detach(int) (this=this@entry=0x7ffed21e4d40, alloc=9556) at /d/qt/5/kde/qtbase/src/corelib/tools/qlist.cpp:120 #3 0x00007fca566572e8 in QList<QWidget*>::detach_helper(int) (this=this@entry=0x7ffed21e4d40, alloc=<optimized out>) at ../../include/QtCore/../../../../qtbase/src/corelib/tools/qlist.h:786 #4 0x00007fca5665736e in QList<QWidget*>::reserve(int) (this=this@entry=0x7ffed21e4d40, alloc=<optimized out>) at ../../include/QtCore/../../../../qtbase/src/corelib/tools/qlist.h:572 #5 0x00007fca5665739d in QSet<QWidget*>::toList() const (this=0x1f326f0) at ../../include/QtCore/../../../../qtbase/src/corelib/tools/qset.h:371 #6 0x00007fca5664cbec in QApplication::allWidgets() () at /d/qt/5/kde/qtbase/src/widgets/kernel/qapplication.cpp:1756 #7 0x00007fca5664cc1d in QApplication::topLevelWidgets() () at /d/qt/5/kde/qtbase/src/widgets/kernel/qapplication.cpp:1730 #8 0x00007fca5664cd35 in QApplicationPrivate::tryCloseAllWidgetWindows(QList<QWindow*>*) (processedWindows=processedWindows@entry=0x7ffed21e4dc0) at /d/qt/5/kde/qtbase/src/widgets/kernel/qapplication.cpp:1867 #9 0x00007fca5664ce98 in QApplication::closeAllWindows() () at /d/qt/5/kde/qtbase/src/widgets/kernel/qapplication.cpp:1910 #10 0x00007fca5ccc4959 in (anonymous namespace)::shutdownGracefully(int) (sig=15) at /d/kde/src/5/extragear/kdevelop/kdevelop/kdevplatform/shell/core.cpp:67 #11 0x00007fca54a91cc0 in <signal handler called> () at /lib64/libc.so.6 #12 0x00007fca54ad6a6e in _int_free (av=0x7fca54dffb00 <main_arena>, p=<optimized out>, have_lock=<optimized out>) at malloc.c:4093 #13 0x00007fca5575d597 in QArrayData::deallocate(QArrayData*, unsigned long, unsigned long) (data=<optimized out>, objectSize=objectSize@entry=1, alignment=alignment@entry=8) at /d/qt/5/kde/qtbase/src/corelib/tools/qarraydata.cpp:167 #14 0x00007fca5575fd26 in QTypedArrayData<char>::deallocate(QArrayData*) (data=<optimized out>) at ../../include/QtCore/../../../../qtbase/src/corelib/tools/qarraydata.h:237 #15 0x00007fca5575fd26 in QByteArray::resize(int) (this=this@entry=0xb75ca20, size=<optimized out>, size@entry=0) at /d/qt/5/kde/qtbase/src/corelib/tools/qbytearray.cpp:1684 #16 0x00007fca55761d6c in QByteArray::remove(int, int) (this=this@entry=0xb75ca20, pos=pos@entry=0, len=len@entry=101) at /d/qt/5/kde/qtbase/src/corelib/tools/qbytearray.cpp:2132 #17 0x00007fca5beefefc in KDevelop::ProcessLineMakerPrivate::streamToStrings(QByteArray&) (data="CMakeFiles/Makefile2:1493: recipe for target 'autotests/CMakeFiles/testrecurprevious.dir/all' failed\n" = {...}) at /d/kde/src/5/extragear/kdevelop/kdevelop/kdevplatform/util/processlinemaker.cpp:58 #18 0x00007fca5beefefc in KDevelop::ProcessLineMakerPrivate::processStdOut() (this=0xb75ca20) at /d/kde/src/5/extragear/kdevelop/kdevelop/kdevplatform/util/processlinemaker.cpp:65 #19 0x00007fca5beefefc in KDevelop::ProcessLineMaker::slotReceivedStdout(QByteArray const&) (this=<optimized out>, buffer="CMakeFiles/Makefile2:1455: recipe for target 'autotests/CMakeFiles/readandwrite.dir/all' failed\nCMakeFiles/Makefile2:1607: recipe for target 'autotests/CMakeFiles/testalarm.dir/all' failed\nCMakeFiles/Makefile2:1493: recipe for target 'autotests/CMakeFiles/testrecurprevious.dir/all' failed\n" = {...}) at /d/kde/src/5/extragear/kdevelop/kdevelop/kdevplatform/util/processlinemaker.cpp:103 #20 0x00007fca5c137f57 in KDevelop::OutputExecuteJobPrivate::childProcessStdout() (this=0xa5f1060) at /d/kde/src/5/extragear/kdevelop/kdevelop/kdevplatform/outputview/outputexecutejob.cpp:387 #21 0x00007fca5594c943 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=<optimized out>, r=0xb75d010, this=<optimized out>) at ../../include/QtCore/../../../../qtbase/src/corelib/kernel/qobject_impl.h:101 #22 0x00007fca5594c943 in QMetaObject::activate(QObject*, int, int, void**) (sender=sender@entry=0xbfe7080, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=6, argv=argv@entry=0x7ffed21e5720) at /d/qt/5/kde/qtbase/src/corelib/kernel/qobject.cpp:3749 #23 0x00007fca5594cdeb in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=sender@entry=0xbfe7080, m=m@entry=0x7fca55d92d40 <QProcess::staticMetaObject>, local_signal_index=local_signal_index@entry=6, argv=argv@entry=0x7ffed21e5720) at /d/qt/5/kde/qtbase/src/corelib/kernel/qobject.cpp:3628 #24 0x00007fca558a369e in QProcess::readyReadStandardOutput(QProcess::QPrivateSignal) (this=this@entry=0xbfe7080, _t1=...) at .moc/moc_qprocess.cpp:362 #25 0x00007fca558a944e in QProcessPrivate::tryReadFromChannel(QProcessPrivate::Channel*) (this=this@entry=0xa5f10d0, channel=channel@entry=0xa5f11f8) at /d/qt/5/kde/qtbase/src/corelib/io/qprocess.cpp:1074 #26 0x00007fca558a94ae in QProcessPrivate::_q_canReadStandardOutput() (this=this@entry=0xa5f10d0) at /d/qt/5/kde/qtbase/src/corelib/io/qprocess.cpp:1085 #27 0x00007fca558af526 in QProcessPrivate::waitForFinished(int) (this=this@entry=0xa5f10d0, msecs=msecs@entry=1000) at /d/qt/5/kde/qtbase/src/corelib/io/qprocess_unix.cpp:889 #28 0x00007fca558a3fe5 in QProcess::waitForFinished(int) (this=0xbfe7080, msecs=msecs@entry=1000) at /d/qt/5/kde/qtbase/src/corelib/io/qprocess.cpp:1924 #29 0x00007fca5c137bab in KDevelop::OutputExecuteJob::doKill() (this=this@entry=0xb75d010) at /d/kde/src/5/extragear/kdevelop/kdevelop/kdevplatform/outputview/outputexecutejob.cpp:300 #30 0x00007fca5c138240 in KDevelop::OutputExecuteJob::~OutputExecuteJob() (this=0xb75d010, __in_chrg=<optimized out>) at /d/kde/src/5/extragear/kdevelop/kdevelop/kdevplatform/outputview/outputexecutejob.cpp:106 #31 0x00007fc9ee4cc099 in MakeJob::~MakeJob() (this=0xb75d010, __in_chrg=<optimized out>) at /d/kde/src/5/extragear/kdevelop/kdevelop/plugins/makebuilder/makejob.cpp:102 #32 0x00007fca55952830 in QObjectPrivate::deleteChildren() (this=this@entry=0xbaf20b0) at /d/qt/5/kde/qtbase/src/corelib/kernel/qobject.cpp:1992 #33 0x00007fca5595398d in QObject::~QObject() (this=<optimized out>, __in_chrg=<optimized out>) at /d/qt/5/kde/qtbase/src/corelib/kernel/qobject.cpp:1022 #34 0x00007fca56df71bd in KJob::~KJob() (this=0xabe1770, __in_chrg=<optimized out>) at /d/kde/src/5/frameworks/kcoreaddons/src/lib/jobs/kjob.cpp:57 #35 0x00007fca56df4e42 in KCompositeJob::~KCompositeJob() (this=0xabe1770, __in_chrg=<optimized out>) at /d/kde/src/5/frameworks/kcoreaddons/src/lib/jobs/kcompositejob.cpp:41 #36 0x00007fca51a59f59 in KDevelop::BuilderJob::~BuilderJob() (this=0xabe1770, __in_chrg=<optimized out>) at /d/kde/src/5/extragear/kdevelop/kdevelop/kdevplatform/project/builderjob.h:37 #37 0x00007fca5594b5bd in qDeleteInEventHandler(QObject*) (o=o@entry=0xabe1770) at /d/qt/5/kde/qtbase/src/corelib/kernel/qobject.cpp:4598 #38 0x00007fca5594d1dc in QObject::event(QEvent*) (this=0xabe1770, e=<optimized out>) at /d/qt/5/kde/qtbase/src/corelib/kernel/qobject.cpp:1237 #39 0x00007fca5664ab10 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x1b46ca0, receiver=receiver@entry=0xabe1770, e=e@entry=0x8a16f20) at /d/qt/5/kde/qtbase/src/widgets/kernel/qapplication.cpp:3722 #40 0x00007fca5665220f in QApplication::notify(QObject*, QEvent*) (this=0x7ffed21e6280, receiver=0xabe1770, e=0x8a16f20) at /d/qt/5/kde/qtbase/src/widgets/kernel/qapplication.cpp:3094 #41 0x00007fca5591eb59 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=receiver@entry=0xabe1770, event=event@entry=0x8a16f20) at /d/qt/5/kde/qtbase/src/corelib/kernel/qcoreapplication.cpp:1018 #42 0x00007fca55923d06 in QCoreApplication::sendEvent(QObject*, QEvent*) (event=0x8a16f20, receiver=0xabe1770) at /d/qt/5/kde/qtbase/src/corelib/kernel/qcoreapplication.h:233 #43 0x00007fca55923d06 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=receiver@entry=0x0, event_type=event_type@entry=0, data=0x1b43180) at /d/qt/5/kde/qtbase/src/corelib/kernel/qcoreapplication.cpp:1678 #44 0x00007fca559240be in QCoreApplication::sendPostedEvents(QObject*, int) (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at /d/qt/5/kde/qtbase/src/corelib/kernel/qcoreapplication.cpp:1532 #45 0x00007fca55975f8a in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x1bbd580) at /d/qt/5/kde/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:276 #46 0x00007fca4c3f4134 in g_main_dispatch (context=0x7fca280016f0) at gmain.c:3154 #47 0x00007fca4c3f4134 in g_main_context_dispatch (context=context@entry=0x7fca280016f0) at gmain.c:3769 #48 0x00007fca4c3f4388 in g_main_context_iterate (context=context@entry=0x7fca280016f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3840 #49 0x00007fca4c3f442c in g_main_context_iteration (context=0x7fca280016f0, may_block=may_block@entry=1) at gmain.c:3901 #50 0x00007fca55975971 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x1bdc350, flags=...) at /d/qt/5/kde/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:423 #51 0x00007fca2f27d488 in QPAEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=<optimized out>, flags=...) at /d/qt/5/kde/qtbase/src/platformsupport/eventdispatchers/qeventdispatcher_glib.cpp:122 #52 0x00007fca5591caad in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffed21e6080, flags=..., flags@entry=...) at /d/qt/5/kde/qtbase/src/corelib/kernel/qeventloop.cpp:134 #53 0x00007fca5591cee4 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffed21e6080, flags=flags@entry=...) at /d/qt/5/kde/qtbase/src/corelib/kernel/qeventloop.cpp:212 #54 0x00007fca559263ca in QCoreApplication::exec() () at /d/qt/5/kde/qtbase/src/corelib/kernel/qcoreapplication.cpp:1291 #55 0x00007fca55ea81c8 in QGuiApplication::exec() () at /d/qt/5/kde/qtbase/src/gui/kernel/qguiapplication.cpp:1679 #56 0x00007fca5664a9eb in QApplication::exec() () at /d/qt/5/kde/qtbase/src/widgets/kernel/qapplication.cpp:2910 #57 0x000000000040c67f in main(int, char**) (argc=3, argv=<optimized out>) at /d/kde/src/5/extragear/kdevelop/kdevelop/app/main.cpp:793 -- You are receiving this mail because: You are watching all bug changes.