Opened 16 years ago

Closed 16 years ago

Last modified 16 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)

8190_bt.txt (55.7 KB ) - added by robertm 16 years ago.
BT from Jafa at SiliconDust

Download all attachments as: .zip

Change History (9)

comment:1 by Dibblah, 16 years ago

Status: newinfoneeded_new

Backtrace?

comment:2 by Paul <mythtv@…>, 16 years ago

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.

in reply to:  2 comment:3 by Paul <mythtv@…>, 16 years ago

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 by Paul <mythtv@…>, 16 years ago

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 by robertm, 16 years ago

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)

by robertm, 16 years ago

Attachment: 8190_bt.txt added

BT from Jafa at SiliconDust

comment:6 by robertm, 16 years ago

Status: infoneeded_newnew

comment:7 by sphery, 16 years ago

Resolution: fixed
Status: newclosed

(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.

comment:8 by sphery, 16 years ago

(In [24728]) Fix NEXTSOURCE/PREVSOURCE key bindings. Backports [24274] from trunk. Refs #8190.

Note: See TracTickets for help on using tickets.