Opened 14 years ago
Closed 14 years ago
Last modified 14 years ago
#8190 closed defect (fixed)
NEXTSOURCE Key stops mythfrontend accepting input
Reported by: | Paul | Owned by: | Isaac Richards |
---|---|---|---|
Priority: | minor | Milestone: | unknown |
Component: | MythTV - General | Version: | 0.22 |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
Problem: Press key Y (or current binding) to select NEXTSOURCE, and no further keyboard or lirc input is accepted from mythfrontend. It must be restarted.
Background: This was hidden until http://svn.mythtv.org/trac/ticket/6472 fixed the keybinding itself - the NEXTSOURCE binding previously went nowhere. The ticket discusses this problem but was unrelated to the original defect other than circumstantially.
mdean: Anyway, as far as the NEXTSOURCE issue, I'd need a good (with symbols) backtrace to say for sure, but I'm almost positive the problem exists in the TV::SwitchSource??() function and is unrelated to the keybinding fix (though the binding allows you to access that function). I plan to test it eventually, but if you can get a backtrace of the hung mythfrontend process, feel free to submit a separate ticket for the issue.
Tested in 23562, and a .22-fixes
Attachments (1)
Change History (9)
comment:1 Changed 14 years ago by
Status: | new → infoneeded_new |
---|
comment:2 follow-up: 3 Changed 14 years ago by
I haven't gone about getting a backtrace out of mythtv before, I'll look it up. Note that mythfrontend continues to work, and play the current channel being watched, so it doesn't crash as such - presumably I can still get a backtrace?
I just tested the telnet 6546 port and after NEXTSOURCE if I try a "key p" for example, it hangs.
comment:3 Changed 14 years ago by
Replying to Paul <mythtv@…>:
I haven't gone about getting a backtrace out of mythtv before, I'll look it up. Note that mythfrontend continues to work, and play the current channel being watched, so it doesn't crash as such - presumably I can still get a backtrace?
I just tested the telnet 6546 port and after NEXTSOURCE if I try a "key p" for example, it hangs.
The telnet session hangs btw, mythfrontend itself carries on with the current playing show.
comment:4 Changed 14 years ago by
The http://www.mythtv.org/wiki/Debugging page only refers to getting a backtrace by having the debugging symbol versions installed when a crash happens.
Mythtv doesn't crash in this instance - is there any more information I can provide that would help?
comment:5 Changed 14 years ago by
Paul,
You should be able to attach to the mythfrontend process using gdb and produce a trace otherwise as indicated in the manual. Get to the locked behavior, open a terminal, do a "ps aux |grep mythfrontend" to get the pid, run gdb, and attach with "attach $pidnumber", then get a backtrace.
(forgive any flubs in those instructions, working from memory)
comment:6 Changed 14 years ago by
Status: | infoneeded_new → new |
---|
comment:7 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
(In [24274]) Fix a deadlock in TV::SwitchSource?() that occured when using the NEXTSOURCE/PREVSOURCE key bindings to switch sources.
The code in TV::timerEvent() was holding a lock, causing a deadlock when TV::SwitchSource?() requested the PlayerContext?. This changes TV::SwitchSource?() to work like the related TV::SwitchCards?() and TV::ToggleInputs? functions by using the PlayerContext? that TV::timerEvent() passes through TV::ProcessKeypress?() and, finally, to TV::ActivePostQHandleAction(), which calls TV::SwitchSource?().
This seems to have been broken in the mythtv-vid branch, but the code was unreachable/untestable due to broken key bindings (which were fixed for #6472).
Refs #6472. Fixes #8190. Thanks to jafa for finally getting a backtrace.
Backtrace?