2010-08-13 18:24:17

by Chris Friesen

[permalink] [raw]
Subject: defunct processes owned by init, not being reaped ?


I'm seeing something very strange. I've got a system running a modified
2.6.27.18. There are two tasks that are showing up as defunct but owned
by init:

root@typhoon-base-unit1:/root> ps -ef|grep defun
root 9933 1 0 09:05 ? 00:00:23 [oamFmLogServerP] <defunct>
root 9959 1 0 09:05 ? 00:00:21 [oamFmCliServerP] <defunct>
root 27674 17021 0 18:17 pts/2 00:00:00 grep defun

I tried sending init a SIGCHLD to force it to reap them. Init tries to
wait for any children, but it doesn't catch them and they remain
defunct--here's the strace of init:

stat64("/dev/initctl", {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
fstat64(10, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
stat64("/dev/initctl", {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
select(11, [10], NULL, NULL, {5, 0}) = ? ERESTARTNOHAND (To be restarted)
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, 0xffcbf6ac, WNOHANG) = 0
sigreturn() = ? (mask now [])
time(NULL) = 1281723340


Anyone got any ideas what could possibly result in this sort of behaviour?

Thanks,

Chris

--
Chris Friesen
Software Developer
GENBAND
[email protected]
http://www.genband.com