Modify

Opened 3 years ago

Closed 3 years ago

Last modified 3 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@… 3 years ago.
untested patch

Download all attachments as: .zip

Change History (5)

Changed 3 years ago by rhansen@…

untested patch

comment:1 Changed 3 years ago by beirdo

  • Owner set to stuartm
  • Status changed from new to assigned

comment:2 Changed 3 years ago by stuartm

  • Component changed from MythTV - General to MythTV - Video/OSD Rendering
  • Milestone changed from unknown to 0.26.1
  • Status changed from assigned to accepted

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

  • Resolution set to fixed
  • Status changed from accepted to closed

In 563fc37cb01ce702806396ecf70657906e5d7125/mythtv:

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

comment:4 Changed 3 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

Add Comment

Modify Ticket

Action
as closed The owner will remain stuartm.
The resolution will be deleted. Next status will be 'new'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.