KRun, startup notification, memory leak
Oswald Buddenhagen
ossi at kde.org
Sun Jul 27 22:30:46 BST 2008
hi dfaure, seli, *,
uwolfer found two related memory leaks which are reproducible this way:
- open a file properties dialog, open the mime type dialog
- then close the app, but still let the mime type dialog open
what happens is this:
KDEPrivate::KFilePropsPlugin::slotEditFileType() calls
KRun::runCommand(). the latter instanciates a KProcess and wraps it into
a KProcessRunner. then it simply forgets about it. at this point the
only reference to these two objects is the event loop. if the app
exits before the child process exits, the references disappear due to
the event loop being disposed.
the effects are:
- the process continues to run
- the startup notification will have to wait for a timeout in case the
startup is about to fail or the process does not tell when it is up
and exits fast
- we have valgrind report a leak. duh
now i wonder:
- where to register the process runner so it gets to know about app
exit?
- or maybe it should increment the kglobal ref count to avoid an
exit?
- if we want the child to outlive the parent without sacrificing the
error handling in the normal case, is this finally a legitimate use
case for qprocess::detach()?
- or should the process runner be in fact a separate process itself?
- do we care at all? maybe the situation should never come up in the
first place?
- or maybe i misanalysed the problem entirely?
--
Hi! I'm a .signature virus! Copy me into your ~/.signature, please!
--
Confusion, chaos, panic - my work here is done.
More information about the kde-core-devel
mailing list