about killing "unkillable" jobs
René J.V. Bertin
rjvbertin at gmail.com
Tue Nov 24 19:47:10 UTC 2015
On Tuesday November 24 2015 15:10:53 Milian Wolff wrote:
> These things are afaik unrelated. The unkillable jobs in 4.x are afaik the
> CMake manager stuff which got rewritten for 5.x. There, I don't see the
> message about unkillable jobs anymore.
Good!
> Regarding QProcess being destroyed while running: That is clearly a bug.
> Please find out where it comes from.
At the moment I cannot do much better than this, not very helpful, probably:
* frame #0: 0x0000000102d39cf0 QtCore`QProcess::~QProcess()
frame #1: 0x0000000118ede0e6 libkdevcompilerprovider.dylib`GccLikeCompiler::includes() const + 2278
frame #2: 0x0000000118ed8ffc libkdevcompilerprovider.dylib`CompilerProvider::addPoject(KDevelop::IProject*, QSharedPointer<ICompiler> const&) + 76
frame #3: 0x0000000118ed8426 libkdevcompilerprovider.dylib`CompilerProvider::CompilerProvider(SettingsManager*, QObject*) + 1798
frame #4: 0x0000000118edf5a7 libkdevcompilerprovider.dylib`SettingsManager::SettingsManager(bool) + 23
frame #5: 0x0000000118ec5e89 kdevdefinesandincludesmanager.so`QObject* KPluginFactory::createInstance<DefinesAndIncludesManager, QObject>(QWidget*, QObject*, QList<QVariant> const&) + 393
frame #6: 0x0000000101b1b5e4 libkdecore.5.dylib`KPluginFactory::create(char const*, QWidget*, QObject*, QList<QVariant> const&, QString const&) + 1124
frame #7: 0x0000000100072367 libkdevplatformshell.8.dylib`KDevelop::PluginController::loadPluginInternal(QString const&) + 2743
frame #8: 0x00000001000747b6 libkdevplatformshell.8.dylib`KDevelop::PluginController::initialize() + 2070
frame #9: 0x000000010007f5b7 libkdevplatformshell.8.dylib`KDevelop::CorePrivate::initialize(KDevelop::Core::Setup, QString) + 4807
frame #10: 0x0000000100080fad libkdevplatformshell.8.dylib`KDevelop::Core::initialize(KSplashScreen*, KDevelop::Core::Setup, QString const&) + 205
frame #11: 0x00000001000151d0 kdevelop`main + 47648
and
* frame #0: 0x0000000102d39cf0 QtCore`QProcess::~QProcess()
frame #1: 0x0000000118edd3a6 libkdevcompilerprovider.dylib`GccLikeCompiler::defines() const + 1462
frame #2: 0x0000000118ed90c9 libkdevcompilerprovider.dylib`CompilerProvider::addPoject(KDevelop::IProject*, QSharedPointer<ICompiler> const&) + 281
frame #3: 0x0000000118ed8426 libkdevcompilerprovider.dylib`CompilerProvider::CompilerProvider(SettingsManager*, QObject*) + 1798
frame #4: 0x0000000118edf5a7 libkdevcompilerprovider.dylib`SettingsManager::SettingsManager(bool) + 23
frame #5: 0x0000000118ec5e89 kdevdefinesandincludesmanager.so`QObject* KPluginFactory::createInstance<DefinesAndIncludesManager, QObject>(QWidget*, QObject*, QList<QVariant> const&) + 393
frame #6: 0x0000000101b1b5e4 libkdecore.5.dylib`KPluginFactory::create(char const*, QWidget*, QObject*, QList<QVariant> const&, QString const&) + 1124
frame #7: 0x0000000100072367 libkdevplatformshell.8.dylib`KDevelop::PluginController::loadPluginInternal(QString const&) + 2743
frame #8: 0x00000001000747b6 libkdevplatformshell.8.dylib`KDevelop::PluginController::initialize() + 2070
frame #9: 0x000000010007f5b7 libkdevplatformshell.8.dylib`KDevelop::CorePrivate::initialize(KDevelop::Core::Setup, QString) + 4807
frame #10: 0x0000000100080fad libkdevplatformshell.8.dylib`KDevelop::Core::initialize(KSplashScreen*, KDevelop::Core::Setup, QString const&) + 205
frame #11: 0x00000001000151d0 kdevelop`main + 47648
I get both backtraces twice, but that's maybe related that `b QProcess::~QProcess` sets a breakpoint in 3 locations.
> Without even knowing what process we are talking about, it is unclear whether
> an eventloop-roundtrip is a safe way to delay the deletion. I severely doubt
I agree it gives no guarantee that the process has had enough time to finish. But in a way I'd hope that Qt had extended the deleteLater() mechanism to include a retain/release mechanism, or another mechanism by which a class could indicate whether it is safe to call delete on an instance.
> that. Also, probably the process is created on the stack. Again, find out what
I suppose you mean the QProcess? :)
R.
More information about the KDevelop-devel
mailing list