fascinating bug to do with apm and child processes...

Carsten Haitzler (The Rasterman) raster at openmoko.org
Wed May 14 14:12:00 CEST 2008


On Wed, 14 May 2008 13:06:01 +0100 Andy Green <andy at openmoko.com> babbled:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Somebody in the thread at some point said:
> 
> |        WNOHANG     return immediately if no child has exited.
> |
> | so under no circumstances should this ever hang... but oooh. it does. now
> | interestingly i attached to apm to see what it was doing.. and
> lo-and-behold,
> | it woke up and continued to execute then exited with sh reaping the
> child then
> | e reaping the sh and e waking up again:
> 
> There's some process freezing step as part of entering suspend, I guess
> it is to do with that.  FWIW echo mem > /sys/power/state also the echo
> never returns until it comes back in resume.

sure - but the system never suspended - it stayed alive. that's why i could
debug :) the problem is a sigchld has been issued for a process that hasn't
fully exited and waitpid() is blocking even with WNOHANG. it should never block
- ever. doesn't matter what the child is doing. :) never hang. ever! :) the
problem is the freeze of the apm process propagates to all its parents - when i
do know that ecore (the lib for e handling this) is carefully written to avoid
such hangs. :) 

> Roh sent an amusing link once about the madness of suspending processes
> in Linux maybe he can dig it out and post it here.
> 
> - -Andy
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
> 
> iEYEARECAAYFAkgq1akACgkQOjLpvpq7dMoyvgCePYeqi2EGeXAwWgeJpQ8TiEAw
> k14An3438OCOZIsF1Npo9pGZRTzzwnFx
> =txG5
> -----END PGP SIGNATURE-----


-- 
Carsten Haitzler (The Rasterman) <raster at openmoko.org>




More information about the openmoko-kernel mailing list