Opened 8 years ago
Closed 8 years ago
Last modified 8 years ago
#8190 closed defect (fixed)
NEXTSOURCE Key stops mythfrontend accepting input
| Reported by: | Paul | Owned by: | ijr |
|---|---|---|---|
| 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 8 years ago by Dibblah
- Status changed from new to infoneeded_new
comment:2 follow-up: ↓ 3 Changed 8 years ago by 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.
comment:3 in reply to: ↑ 2 Changed 8 years ago by Paul <mythtv@…>
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 8 years ago by Paul <mythtv@…>
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 8 years ago by robertm
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 8 years ago by robertm
- Status changed from infoneeded_new to new
comment:7 Changed 8 years ago by mdean
- Resolution set to fixed
- Status changed from new to 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?