kdevelop (4.7) launching background *processes*?

Milian Wolff mail at milianw.de
Wed Dec 10 13:57:49 GMT 2014


On Wednesday 10 December 2014 14:15:32 Kevin Funk wrote:
> On Wednesday 10 December 2014 12:36:33 René J.V. Bertin wrote:
> > Hi,
> > 
> > I just noticed this:
> > 
> > #> ps -axlww | fgrep kdevelop
> > 
> >   505 16877 81395     408e   0  46  0  5605220 695028 -      U
> >   
> >     0 ttys000    8:25.50 kdevelop --ps 505 17231 16877     2006   0   0  0
> >     
> >       0      0 -      Z                   0 ttys000    0:00.00
> > 
> > (kdevelop.bin) 505 17232 16877     2006   0   0  0        0      0 -     
> > Z
> > 
> >                   0 ttys000    0:00.00 (kdevelop.bin) 505 17233 16877
> > 
> > 2006   0   0  0        0      0 -      Z                   0 ttys000
> > 0:00.00 (kdevelop.bin) 505 17377 16877     2006   0   0  0        0      0
> > -      Z                   0 ttys000    0:00.00 (kdevelop.bin) 505 17378
> > 16877     2006   0   0  0        0      0 -      Z                   0
> > ttys000    0:00.00 (kdevelop.bin) 505 17379 16877     2006   0   0  0
> > 
> >  0      0 -      Z                   0 ttys000    0:00.00 (kdevelop.bin)
> > 
> > 505 17380 16877     2006   0   0  0        0      0 -      Z
> > 
> >    0 ttys000    0:00.00 (kdevelop.bin)
> > 
> > This is on OS X, and the kdevelop entry in my path is actually a symlink
> > to
> > kdevelop.bin, so those zombies are real processes, not some kind of
> > threads
> > as Linux apparently tends to do sometimes.
> > 
> > Does KDevelop indeed launch background processes (and where), or is this
> > some kind of anomaly?
> 
> Zombie processes usually indicate that the previous application run wasn't
> terminated cleanly. Can you check whether kdevelop usually exists cleanly or
> happens to crash?
> 
> Maybe try to run kdevelop in the debugger to catch those crash on exits.

To add on what Kevin said: No, KDevelop does not create background processes 
*of itself*. But it may launch external processes, such as CMake, make, GDB, 
ninja, SVN, CVS, git, hg, ...

We've had reports before, where we tried to start a process that did not 
exist, i.e. something like:

QString exe = KStandardDirs::findExe("something");
// if it is not found, exe will be empty
QProcess p(exe);
p.start();

On Linux systems, this then produces KDevelop zombies. Maybe we are missing 
the correct checks in some places. Or maybe it's something else on Mac? Still, 
you should be able to strace this problem via

strace -e process -f kdevelop

The QProcess implementation will first clone, then run execve. At least on 
Linux. Not sure what it does on Mac. Still, maybe you find something odd 
there.

Bye, good luck with debugging this.
-- 
Milian Wolff
mail at milianw.de
http://milianw.de



More information about the KDevelop mailing list