[mythtv-commits] Ticket #10188: Deadlocks constantly

MythTV noreply at mythtv.org
Sat Jan 14 17:50:58 UTC 2012


#10188: Deadlocks constantly
----------------------------------------+----------------------------
 Reporter:  yurko@…                     |          Owner:
     Type:  Bug Report - Hang/Deadlock  |         Status:  new
 Priority:  major                       |      Milestone:  unknown
Component:  MythTV - General            |        Version:  Trunk Head
 Severity:  medium                      |     Resolution:
 Keywords:  Dead Lock                   |  Ticket locked:  0
----------------------------------------+----------------------------

Comment (by J. Ali Harlow <ali@…>):

 I wrote a little script/program to see what the backend is watching at any
 time which might help somebody work out what's going on. Shortly after
 restarting the backend, I get something like this:

 {{{
 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,
 }}}

 It seems this read never returns.

-- 
Ticket URL: <http://code.mythtv.org/trac/ticket/10188#comment:13>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center


More information about the mythtv-commits mailing list