[mythtv] Mythfrontend hang with CVS

Leo Weppelman leo at wau.mis.ah.nl
Tue Jun 8 16:24:09 EDT 2004


On Tue, Jun 08, 2004 at 02:03:43PM -0500, Stacey Son wrote:
> Yes, nesting calls to getfsent() is not good given that it is using a 
> static buffer.   This is most likely the reason mythfrontend is hanging 
> for you. 
> 
> After looking at the code I don't see the reason for calling getfsent() 
> again in addDevice().  Attached is a patch to mythmediamonitor.cpp and 
> mythmediamonitor.h that add another overloaded addDevice().   This 
> eliminates the nested calls to getfsent().  Please give this patch a try 
> and let me know if it fixes the hanging problem.

Just one minor nit at first debugging:
> +
> +    if (! stat(mep->fs_spec, &sbuf))
> +       return false;   

This should be:
      if(stat(mep->fs_spec, &sbuf) == -1)
	return false;

Next crash is the stack overflow (endless recursion) in unlock/openDevice:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1097172352 (LWP 1458)]
0x4090fae6 in MythMediaDevice::openDevice ()
   from /usr/local/lib/libmyth-0.15.so.0
(gdb) bt
#0  0x4090fae6 in MythMediaDevice::openDevice ()
   from /usr/local/lib/libmyth-0.15.so.0
#1  0x40921e6b in MythCDROM::openDevice ()
   from /usr/local/lib/libmyth-0.15.so.0
#2  0x409245fe in MythCDROMLinux::unlock ()
   from /usr/local/lib/libmyth-0.15.so.0
#3  0x40921e8e in MythCDROM::openDevice ()
   from /usr/local/lib/libmyth-0.15.so.0

Leo.


More information about the mythtv-dev mailing list