Bug 387294 - KDevelop locked up due to a crash in KDevelop::OutputExecuteJob
Summary: KDevelop locked up due to a crash in KDevelop::OutputExecuteJob
Status: RESOLVED WORKSFORME
Alias: None
Product: kdevelop
Classification: Applications
Component: Output Views (show other bugs)
Version: git master
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-11-25 12:57 UTC by David Faure
Modified: 2022-12-10 05:16 UTC (History)
0 users

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 David Faure 2017-11-25 12:57:01 UTC
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
Comment 1 Justin Zobel 2022-11-10 22:32:31 UTC
Thank you for reporting this issue in KDE software. As it has been a while since this issue was reported, can we please ask you to see if you can reproduce the issue with a recent software version?

If you can reproduce the issue, please change the status to "REPORTED" when replying. Thank you!
Comment 2 Bug Janitor Service 2022-11-25 05:20:10 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 3 Bug Janitor Service 2022-12-10 05:16:58 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!