[mythtv] Mythfrontend hang with CVS

Leo Weppelman leo at wau.mis.ah.nl
Tue Jun 8 17:21:37 EDT 2004


On Tue, Jun 08, 2004 at 10:24:09PM +0200, Leo Weppelman wrote:
> 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
> 

The next patch fixes the crash, unfortunately, the media monitor does
not work yet. It doesn't seem to sense mediachanges - and it _did_
2 weeks ago :-/

Leo


Index: mythcdrom-linux.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmyth/mythcdrom-linux.cpp,v
retrieving revision 1.1
diff -u -r1.1 mythcdrom-linux.cpp
--- mythcdrom-linux.cpp	4 Jun 2004 02:31:22 -0000	1.1
+++ mythcdrom-linux.cpp	8 Jun 2004 21:17:22 -0000
@@ -195,7 +195,7 @@
 
 MediaError MythCDROMLinux::unlock() 
 {
-    if (openDevice()) 
+    if (isDeviceOpen() || openDevice()) 
     { 
         // The call to the base unlock will close it if needed.
         VERBOSE( VB_ALL, "Unlocking CDROM door");
Index: mythcdrom-freebsd.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmyth/mythcdrom-freebsd.cpp,v
retrieving revision 1.3
diff -u -r1.3 mythcdrom-freebsd.cpp
--- mythcdrom-freebsd.cpp	4 Jun 2004 04:27:08 -0000	1.3
+++ mythcdrom-freebsd.cpp	8 Jun 2004 21:17:35 -0000
@@ -74,7 +74,7 @@
 
 MediaError MythCDROMFreeBSD::unlock() 
 {
-    if (openDevice()) 
+    if (isDeviceOpen() || openDevice()) 
     { 
         // The call to the base unlock will close it if needed.
         VERBOSE( VB_ALL, "Unlocking CDROM door");


More information about the mythtv-dev mailing list