Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#10610 closed Patch - Bug Fix (fixed)

Frontend enters infinite loop if channel icon == "none"

Reported by: rhansen@… Owned by: stuartm
Priority: minor Milestone: 0.26.1
Component: MythTV - Video/OSD Rendering Version: 0.25-fixes
Severity: medium Keywords:
Cc: Ticket locked: no

Description

My mythfrontend enters an infinite loop whenever I try to watch live TV. The following messages repeat in the logs until I hit ESC to exit:

Apr 15 22:08:07 hostname mythfrontend[27737]: I CoreContext mythcorecontext.cpp:1178 (CheckProtoVersion) Using protocol version 72
Apr 15 22:08:07 hostname mythfrontend[27737]: I CoreContext mythcorecontext.cpp:1178 (CheckProtoVersion) Using protocol version 72
Apr 15 22:08:07 hostname mythfrontend[27737]: E CoreContext remotefile.cpp:172 (openSocket) RemoteFile::openSocket(file data socket): Failed to open socket, error was filetransfer_filename_empty
Apr 15 22:08:07 hostname mythfrontend[27737]: E CoreContext mythuihelper.cpp:1349 (LoadScaleImage) MythUIHelper: LoadScaleImage(myth://ChannelIcon@127.0.0.1:6543/none) failed to load remote image
Apr 15 22:08:07 hostname mythfrontend[27737]: E CoreContext mythuihelper.cpp:1378 (LoadScaleImage) MythUIHelper: LoadScaleImage(myth://ChannelIcon@127.0.0.1:6543/none) failed to load image
Apr 15 22:08:07 hostname mythfrontend[27737]: I CoreContext mythcorecontext.cpp:1178 (CheckProtoVersion) Using protocol version 72
Apr 15 22:08:07 hostname mythfrontend[27737]: I CoreContext mythcorecontext.cpp:1178 (CheckProtoVersion) Using protocol version 72
Apr 15 22:08:07 hostname mythfrontend[27737]: E CoreContext remotefile.cpp:172 (openSocket) RemoteFile::openSocket(file data socket): Failed to open socket, error was filetransfer_filename_empty
Apr 15 22:08:07 hostname mythfrontend[27737]: E CoreContext mythuihelper.cpp:1349 (LoadScaleImage) MythUIHelper: LoadScaleImage(myth://ChannelIcon@127.0.0.1:6543/none) failed to load remote image
Apr 15 22:08:07 hostname mythfrontend[27737]: E CoreContext mythuihelper.cpp:1378 (LoadScaleImage) MythUIHelper: LoadScaleImage(myth://ChannelIcon@127.0.0.1:6543/none) failed to load image
Apr 15 22:08:07 hostname mythfrontend[27737]: I CoreContext mythcorecontext.cpp:1178 (CheckProtoVersion) Using protocol version 72
Apr 15 22:08:07 hostname mythfrontend[27737]: I CoreContext mythcorecontext.cpp:1178 (CheckProtoVersion) Using protocol version 72
Apr 15 22:08:07 hostname mythfrontend[27737]: E CoreContext remotefile.cpp:172 (openSocket) RemoteFile::openSocket(file data socket): Failed to open socket, error was filetransfer_filename_empty
Apr 15 22:08:07 hostname mythfrontend[27737]: E CoreContext mythuihelper.cpp:1349 (LoadScaleImage) MythUIHelper: LoadScaleImage(myth://ChannelIcon@127.0.0.1:6543/none) failed to load remote image
Apr 15 22:08:07 hostname mythfrontend[27737]: E CoreContext mythuihelper.cpp:1378 (LoadScaleImage) MythUIHelper: LoadScaleImage(myth://ChannelIcon@127.0.0.1:6543/none) failed to load image
Apr 15 22:08:07 hostname mythfrontend[27737]: I CoreContext mythcorecontext.cpp:1178 (CheckProtoVersion) Using protocol version 72
Apr 15 22:08:08 hostname mythfrontend[27737]: I CoreContext mythcorecontext.cpp:1178 (CheckProtoVersion) Using protocol version 72
Apr 15 22:08:08 hostname mythfrontend[27737]: E CoreContext remotefile.cpp:172 (openSocket) RemoteFile::openSocket(file data socket): Failed to open socket, error was filetransfer_filename_empty
Apr 15 22:08:08 hostname mythfrontend[27737]: E CoreContext mythuihelper.cpp:1349 (LoadScaleImage) MythUIHelper: LoadScaleImage(myth://ChannelIcon@127.0.0.1:6543/none) failed to load remote image
Apr 15 22:08:08 hostname mythfrontend[27737]: E CoreContext mythuihelper.cpp:1378 (LoadScaleImage) MythUIHelper: LoadScaleImage(myth://ChannelIcon@127.0.0.1:6543/none) failed to load image

Here is the backtrace leading up to the error message:

#0  MythUIHelper::LoadScaleImage (this=0xb406c0, filename=..., fromcache=true) at mythuihelper.cpp:1309
#1  0x00007ffff535ffe4 in MythImage::Load (this=0x7fffde4ac090, filename=..., scale=<value optimized out>) at mythimage.cpp:276
#2  0x00007ffff53a53fd in ImageLoader::LoadImage (painter=0xc3e190, imProps=..., cacheMode=kCacheNormal, parent=0x7fff00000050, aborted=@0x7fffffff8d01, imageReader=0x0) at mythuiimage.cpp:284
#3  0x00007ffff539f1c1 in MythUIImage::Load (this=0x7fffde4e4ab0, allowLoadInBackground=false, forceStat=false) at mythuiimage.cpp:1044
#4  0x00007ffff76933a2 in OSD::SetText (this=0x7fffdcc0cab0, window=..., map=..., timeout=kOSDTimeout_Med) at osd.cpp:435

Walking back up the call stack, I noticed that OSD::SetText() tests to see if the icon path is empty but does not check to see if it equals "none" (the default value in the database schema). Attached is an untested patch that should fix this bug.

Attachments (1)

0001-Treat-iconpath-none-the-same-as-iconpath.isEmpty.patch (1.4 KB) - added by rhansen@… 6 years ago.
untested patch

Download all attachments as: .zip

Change History (5)

Changed 6 years ago by rhansen@…

untested patch

comment:1 Changed 6 years ago by beirdo

Owner: set to stuartm
Status: newassigned

comment:2 Changed 6 years ago by stuartm

Component: MythTV - GeneralMythTV - Video/OSD Rendering
Milestone: unknown0.26.1
Status: assignedaccepted

comment:3 Changed 6 years ago by Stuart Morgan <smorgan@…>

Resolution: fixed
Status: acceptedclosed

In 563fc37cb01ce702806396ecf70657906e5d7125/mythtv:

Don't insert a default value of 'none' into the icon column of the channel table. Fixes #10610

comment:4 Changed 6 years ago by Stuart Morgan <smorgan@…>

In b187af8f19b2e4a04e0d6ac12433fc4cded30f81/mythtv:

Include an update replacing 'none' with in 1308. If you've already updated to 1308 you might consider manually running UPDATE channel SET icon= WHERE icon='none'; Refs #10610

Note: See TracTickets for help on using tickets.