[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