[mythtv-commits] Ticket #10265: mythbackend main thread blocks soon after startup on CentOS 6.2

MythTV noreply at mythtv.org
Sun Jan 15 23:32:54 UTC 2012


#10265: mythbackend main thread blocks soon after startup on CentOS 6.2
-------------------------------------+-------------------------------------
 Reporter:  J. Ali Harlow <ali@…>    |           Type:  Bug Report -
   Status:  new                      |  Hang/Deadlock
Milestone:  unknown                  |       Priority:  minor
  Version:  0.24-fixes               |      Component:  MythTV - General
 Keywords:                           |       Severity:  medium
                                     |  Ticket locked:  0
-------------------------------------+-------------------------------------
 Running fixes/0.24 (294968bea7546d5c0d27b7326401e79a7e67764b) plus
 [http://code.mythtv.org/trac/attachment/ticket/9704/mythtv-0.24-backport_reconnect_fixes.patch]
 and mysql-5.1.52-1.el6_0.1.x86_64 on CentOS 6.2

 Whenever I start mythbackend, I have a short window to start the frontend
 during which time it will connect (and appears to work fine). After that
 short window closes, the backend no longer accepts any connections.

 I wrote a simple script/program to show what mythbackend was watching
 (attached). When I run this during the window, I see something like the
 following:

 {{{
 22280: poll fds=[{fd=3, events=1, revents=0} {fd=9, events=1, revents=0}
 {fd=38, events=1, revents=0} {fd=3, events=1, revents=0}] nfds=0x4
 22285: poll fds=[{fd=7, events=1, revents=0}] nfds=0x1
 22288: select nfds=0xf readfds=[12 13 14] writefds=0x0 exceptfds=0x0
 22444: poll fds=[{fd=26, events=1, revents=0}] nfds=0x1
 COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
 mythbacke 22280 root    3r  FIFO    0,8      0t0 117605 pipe
 mythbacke 22280 root    7r  FIFO    0,8      0t0 117615 pipe
 mythbacke 22280 root    9u  IPv4 117616      0t0    TCP *:lds-dump
 (LISTEN)
 mythbacke 22280 root   12u  IPv4 117619      0t0    UDP *:apc-6549
 mythbacke 22280 root   13u  IPv4 117620      0t0    UDP
 239.255.255.250:ssdp
 mythbacke 22280 root   14u  IPv4 117621      0t0    UDP
 255.255.255.255:ssdp
 mythbacke 22280 root   26r  FIFO    0,8      0t0 118008 pipe
 mythbacke 22280 root   38u  IPv4 118014      0t0    TCP *:lds-distrib
 (LISTEN)
 }}}

 so we can see that the main thread is watching some pipe (twice) and the
 two listening TCP ports.

 A little later, we get this:

 {{{
 22285: poll fds=[{fd=7, events=1, revents=0}] nfds=0x1
 22288: select nfds=0xf readfds=[12 13 14] writefds=0x0 exceptfds=0x0
 22444: poll fds=[{fd=26, events=1, revents=0}] nfds=0x1
 COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
 mythbacke 22280 root    7r  FIFO    0,8      0t0 117615 pipe
 mythbacke 22280 root   12u  IPv4 117619      0t0    UDP *:apc-6549
 mythbacke 22280 root   13u  IPv4 117620      0t0    UDP
 239.255.255.250:ssdp
 mythbacke 22280 root   14u  IPv4 117621      0t0    UDP
 255.255.255.255:ssdp
 mythbacke 22280 root   26r  FIFO    0,8      0t0 118008 pipe
 }}}

 and strace tells us the main thread is blocked reading the pipe that it
 was watching:

 {{{
 # strace -p 22280
 Process 22280 attached - interrupt to quit
 read(3,
 }}}

 A backtrace at this point is attached.

-- 
Ticket URL: <http://code.mythtv.org/trac/ticket/10265>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center


More information about the mythtv-commits mailing list