Opened 10 years ago

Closed 10 years ago

Last modified 10 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 10 years ago.
BT from Jafa at SiliconDust?

Download all attachments as: .zip

Change History (9)

comment:1 Changed 10 years ago by Dibblah

Status: newinfoneeded_new

Backtrace?

comment:2 Changed 10 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 10 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 10 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 10 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)

Changed 10 years ago by robertm

Attachment: 8190_bt.txt added

BT from Jafa at SiliconDust?

comment:6 Changed 10 years ago by robertm

Status: infoneeded_newnew

comment:7 Changed 10 years ago by sphery

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 Changed 10 years ago by sphery

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

Note: See TracTickets for help on using tickets.