[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