[mythtv-commits] Ticket #7315: mythtranscode doesnt die after lossless transcoding to cut out ads

MythTV mythtv at cvs.mythtv.org
Thu Dec 3 05:10:59 UTC 2009


#7315: mythtranscode doesnt die after lossless transcoding to cut out ads
------------------------------------+---------------------------------------
 Reporter:  oobe.trouble@…          |        Owner:  ijr    
     Type:  defect                  |       Status:  new    
 Priority:  minor                   |    Milestone:  unknown
Component:  MythTV - General        |      Version:  head   
 Severity:  medium                  |   Resolution:         
  Mlocked:  0                       |  
------------------------------------+---------------------------------------

Comment(by joe@…):

 I've been having this problem as well.  It appears to be related to
 libmythdb and mythtranscode forking with an active DB connection.  Below
 is the last few lines of strace before mythtranscode hangs:
 {{{
 ftruncate(17, 3449716)                  = 0 (These 2 lines are slow-
 deleting
 nanosleep({0, 500000000}, NULL)         = 0  the original file)
 write(13, "0"..., 1)                    = 1
 futex(0x11d917c, FUTEX_WAIT_PRIVATE, 1, NULL
 }}}
 Attaching gdb to the same process provides the following:
 {{{
 #0  0x00007f3398a24d19 in pthread_cond_wait@@GLIBC_2.3.2 () from
 /lib/libpthread.so.0
 #1  0x00007f33995976f9 in QWaitCondition::wait () from
 /usr/lib/qt4/libQtCore.so.4
 #2  0x00007f3399596757 in QThread::wait () from
 /usr/lib/qt4/libQtCore.so.4
 #3  0x00007f339e29894c in MythSocketThread::ShutdownReadyReadThread
 (this=0x11d8fa0) at mythsocketthread.cpp:64
 #4  0x00007f3397d53a1d in exit () from /lib/libc.so.6
 }}}
 ShutdownReadyReadThread is as follows, line 64 is 'wait();':
 {{{
 void MythSocketThread::ShutdownReadyReadThread(void)
 {
     {
         QMutexLocker locker(&m_readyread_lock);
         m_readyread_run = false;
     }

     WakeReadyReadThread();

     wait(); // waits for thread to exit

     CloseReadyReadPipe();
 }
 }}}

 Now, I'm not sure what is exactly the right way to fix this, close the DB
 before fork?  After fork?  What's the right way to close it anyway?

 Hopefully this provides enough hints for someone else to nail it down.

 -Joe

-- 
Ticket URL: <http://svn.mythtv.org/trac/ticket/7315#comment:20>
MythTV <http://www.mythtv.org/>
MythTV


More information about the mythtv-commits mailing list