[mythtv-users] Mythbackend stops <defunct>
Brian Foddy
bfoddy at visi.com
Thu Apr 5 00:48:28 UTC 2007
On Wednesday 04 April 2007 09:43 am, David Campbell wrote:
> Kevin Kuphal wrote:
> > I recently upgraded my kernel to 2.6.20.1 from a Redhat 9 system in
> > order to move my DVB HD cards from my slave backend into my master
> > backend. Everything seems to be working fine except that after a period
> > of time (not related to any recording schedule, just after a while) the
> > backend will become unresponsive and if I shut it down, it gets stuck as
> > a <defunct> process.
> >
> > Does anyone know what <defunct> means. It does not let go of it's ports
> > so I cannot start it back up again and it seems to hold onto the ivtv
> > and dvb drivers as well which leads me to believe that it is still
> > "alive" in some way.
> >
> > [root at mythtv root]# ps -elf | grep mythbackend
> > 0 R root 11697 11484 0 78 0 - 918 - 09:13 pts/0
> > 00:00:00 grep mythbackend
> > 5 Z root 12262 1 1 78 0 - 0 exit Apr02 ?
> > 00:29:26 [mythbackend] <defunct>
> >
> > Any help would be appreciated.
>
> It's a zombie process.
>
> Definition: zombie: n. [Unix] A process that has died but has not yet
> relinquished its process table slot (because the parent process hasn't
> executed a wait(2) for it yet). These can be seen in ps(1) listings
> occasionally. Compare orphan.
>
> I get them when something fairly bad happens in myth, usually when
> watching live TV.
>
> It sucks/
>
> Dave
>
The definition is technically correct, but unless you are spawning processes
in strange ways, or your own (buggy) programs, its rare that a defunct process
is simply caused by the parent not reaping its children, ie the shell or init;
as that would imply bugs in those processes. I find the more typical cause is
the program has made a call into the kernel and somehow got hung on
that call, a bad driver, NFS hang, or something similar, that prevents
it from returning, and in the mean time the program has tried to die
by user signal (kill), etc; leaving it stuck, defunct. Focus your debugging
efforts on the root problem, not the defunct state that your kill is causing.
Its making a kernel call that is bad somewhere. Your using a pretty new
kernel, are all the modules ready for it?
Brian
More information about the mythtv-users
mailing list