Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#11937 closed Bug Report - General (fixed)

Channel icons not appearing in guide on remote frontend using IPv6 (v0.27-72-gea5af90)

Reported by: Anthony Messina <amessina@…> Owned by: stuartm
Priority: minor Milestone: 0.27.1
Component: MythTV - General Version: 0.27-fixes
Severity: medium Keywords:
Cc: amessina@…, Stuart Auchterlonie Ticket locked: no

Description

I'm having an issue on a remote frontend where no channel icons appear in the guide, either entering Live TV or scheduling a recording. The mythfrontend -v file,gui logs reveal the following group of messages for each channel. I am not sure where the "%5" comes from after the icon file name.

I can confirm that mythconverg does not have "%5" as part of the icon name. I can also confirm that the icons exist in the MYTHCONFDIR (/etc/mythtv/channels) and are accessible by the user running the backend (mythtv). If it makes a difference, I am using the blue-abstract-wide theme.

MythUIHelper: 
LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>:6543]/this_tv_network.jpg%5,myth:--
ChannelIcons@[<IPv6_addr_redacted>:6543]-this_tv_network.jpg%5--102x85.png)
ImageLoader::LoadImage(myth:--ChannelIcons@[<IPv6_addr_redacted>:6543]-
this_tv_network.jpg%5--102x85.png) Found in cache, RefCount = 2
ImageLoader::LoadImage(myth://ChannelIcons@[<IPv6_addr_redacted>:6543]/this_tv_network.jpg%5) 
Image is NULL
MythUIHelper: NOT IN RAM CACHE, Adding, and adding to size :myth:--
ChannelIcons@[<IPv6_addr_redacted>:6543]-wttw_chicago.jpg%5--102x85.png: :0:
MythUIHelper: MythUIHelper::CacheImage : Cache Count = :123: size :164:

After closer inspection, I can see that the "port" portion ":6543" is included within the brackets, which is causing the failure.

I've traced back from through MythCoreContext::GetMasterHostPrefix? to MythCoreContext::GenMythURL and everything *appears* as though it should work. I cannot figure out why the port is inserted inside of the brackets unless the following in mythtv/libs/libmythbase/mythcorecontext.cpp isn't working ~L676:

#if !defined(QT_NO_IPV6)
    // Basically if it appears to be an IPv6 IP surround the IP with [] 
otherwise don't bother
    if (( addr.protocol() == QAbstractSocket::IPv6Protocol ) || 
(host.contains(":")))
        m_host = "[" + host + "]";
#endif

MythTV Version : 317d5b7 MythTV Branch : tag: v0.27 Network Protocol : 77 Library API : 0.27.20131021-1 QT Version : 4.8.5 Options compiled in:

linux release use_hidesyms using_alsa using_jack using_oss using_pulse

using_pulseoutput using_backend using_bindings_perl using_bindings_python using_bindings_php using_crystalhd using_dvb using_firewire using_frontend using_hdhomerun using_ceton using_hdpvr using_ivtv using_joystick_menu using_libcec using_libcrypto using_libdns_sd using_libfftw3 using_libxml2 using_libudf using_lirc using_mheg using_opengl using_opengl_video using_qtwebkit using_qtscript using_qtdbus using_taglib using_v4l2 using_x11 using_xrandr using_xv using_bindings_perl using_bindings_python using_bindings_php using_mythtranscode using_opengl using_vaapi using_vdpau using_ffmpeg_threads using_mheg using_libass using_libxml2 using_libudf

I initially reported this information on the users mailing list: http://www.mythtv.org/pipermail/mythtv-users/2013-November/355741.html

Change History (10)

comment:1 Changed 6 years ago by Stuart Auchterlonie

Cc: Stuart Auchterlonie added
Milestone: unknown0.27.1
Owner: set to stuartm
Status: newassigned

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

Resolution: fixed
Status: assignedclosed

In 08b2525642ef1defa1390a4dbf35d5a3d2993147/mythtv:

Since IPv6 addresses can contain %{num} as the zone index, it's not safe to use QString::arg() in GenMythUrl?(). Potentially fixes #11937

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

In 0a5c67e424c4e500fa26567216761b46aefbd230/mythtv:

Since IPv6 addresses can contain %{num} as the zone index, it's not safe to use QString::arg() in GenMythUrl?(). Potentially fixes #11937
(cherry picked from commit 08b2525642ef1defa1390a4dbf35d5a3d2993147)

comment:4 Changed 6 years ago by stuartm

Can you confirm that your configured Master Server IP does not have the port number attached in mythtv-setup?

comment:5 Changed 6 years ago by Bill Meek <keemllib@…>

Responding to Mike Deans request on the -users list, the 'printable version' of mine is:

MasterServerIP = fdf9:a66:2cd8:1::223

And, :223 is truly a part of the IPv6 Unique Local Address not a port.

comment:6 in reply to:  4 Changed 6 years ago by Anthony Messina <amessina@…>

Replying to stuartm:

Can you confirm that your configured Master Server IP does not have the port number attached in mythtv-setup?

MariaDB [mythconverg]> select * from mythconverg.settings where value = 'MasterServerIP';
+----------------+---------------------------------------+----------+
| value          | data                                  | hostname |
+----------------+---------------------------------------+----------+
| MasterServerIP | 2001:470:abcd:1234:201:2eff:fe41:ac18 | NULL     |
+----------------+---------------------------------------+----------+

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

In 02d88eb79ae2ed969094787f641466137079b0f1/mythtv:

Simplify MythCoreContext::GetMasterHostPrefix?(). It's a waste of time to get the IP/port from the socket when we can be using the values from the settings instead, if we're not already connected to the master we will soon be connecting anyway to conduct the file transfer.
(cherry picked from commit 22b48f435a97b6b973a2e0dea9e89548350bc01e)

Refs #11937

comment:8 in reply to:  3 Changed 6 years ago by Anthony Messina <amessina@…>

Replying to Stuart Morgan <smorgan@…>:

In 0a5c67e424c4e500fa26567216761b46aefbd230/mythtv:

Since IPv6 addresses can contain %{num} as the zone index, it's not safe to use QString::arg() in GenMythUrl?(). Potentially fixes #11937
(cherry picked from commit 08b2525642ef1defa1390a4dbf35d5a3d2993147)

Unfortunately, the above leads to the following output where the redaced IPv6 address is a gloabl IPv6 address (not a link-local):

MythUIHelper: LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-touch_vision_us.jpg-102-85x%4.png]:6543/touch_vision_us.jpg,%2)
MythUIHelper: LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-touch_vision_us.jpg-102-85x%4.png]:6543/touch_vision_us.jpg,%2)
MythUIHelper: LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-wpwr_my50_chicago.jpg-102-85x%4.png]:6543/wpwr_my50_chicago.jpg,%2)
MythUIHelper: LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-wpwr_my50_chicago.jpg-102-85x%4.png]:6543/wpwr_my50_chicago.jpg,%2)
MythUIHelper: LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-foxtel_movies_au.jpg-102-85x%4.png]:6543/foxtel_movies_au.jpg,%2)
MythUIHelper: LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-foxtel_movies_au.jpg-102-85x%4.png]:6543/foxtel_movies_au.jpg,%2)
MythUIHelper: LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-wbbm_cbs2_chicago.jpg-102-85x%4.png]:6543/wbbm_cbs2_chicago.jpg,%2)
MythUIHelper: LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-wbbm_cbs2_chicago.jpg-102-85x%4.png]:6543/wbbm_cbs2_chicago.jpg,%2)
MythUIHelper: LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-wmaq_nbc5_chicago.jpg-102-85x%4.png]:6543/wmaq_nbc5_chicago.jpg,%2)
MythUIHelper: LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-wmaq_nbc5_chicago.jpg-102-85x%4.png]:6543/wmaq_nbc5_chicago.jpg,%2)
MythUIHelper: LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-cozi_tv_us.jpg-102-85x%4.png]:6543/cozi_tv_us.jpg,%2)
MythUIHelper: LoadCacheImage(myth://ChannelIcons@[<IPv6_addr_redacted>myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-cozi_tv_us.jpg-102-85x%4.png]:6543/cozi_tv_us.jpg,%2)
MythUIHelper: NOT IN RAM CACHE, Adding, and adding to size :myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-touch_vision_us.jpg-102-85x%4.png: :0:
MythUIHelper: MythUIHelper::CacheImage : Cache Count = :113: size :0:
ImageLoader::LoadImage(myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-touch_vision_us.jpg-102-85x%4.png) Found in cache, RefCount = 2
ImageLoader::LoadImage(myth://ChannelIcons@[<IPv6_addr_redacted>%0]:6543/touch_vision_us.jpg) Image is NULL
MythUIHelper: NOT IN RAM CACHE, Adding, and adding to size :myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-foxtel_movies_au.jpg-102-85x%4.png: :0:
MythUIHelper: MythUIHelper::CacheImage : Cache Count = :114: size :0:
ImageLoader::LoadImage(myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-foxtel_movies_au.jpg-102-85x%4.png) Found in cache, RefCount = 2
ImageLoader::LoadImage(myth://ChannelIcons@[<IPv6_addr_redacted>%0]:6543/foxtel_movies_au.jpg) Image is NULL
MythUIHelper: NOT IN RAM CACHE, Adding, and adding to size :myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-wmaq_nbc5_chicago.jpg-102-85x%4.png: :0:
MythUIHelper: MythUIHelper::CacheImage : Cache Count = :115: size :0:
ImageLoader::LoadImage(myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-wmaq_nbc5_chicago.jpg-102-85x%4.png) Found in cache, RefCount = 2
ImageLoader::LoadImage(myth://ChannelIcons@[<IPv6_addr_redacted>%0]:6543/wmaq_nbc5_chicago.jpg) Image is NULL
MythUIHelper: NOT IN RAM CACHE, Adding, and adding to size :myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-wbbm_cbs2_chicago.jpg-102-85x%4.png: :0:
MythUIHelper: MythUIHelper::CacheImage : Cache Count = :116: size :0:
ImageLoader::LoadImage(myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-wbbm_cbs2_chicago.jpg-102-85x%4.png) Found in cache, RefCount = 2
ImageLoader::LoadImage(myth://ChannelIcons@[<IPv6_addr_redacted>%0]:6543/wbbm_cbs2_chicago.jpg) Image is NULL
MythUIHelper: NOT IN RAM CACHE, Adding, and adding to size :myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-cozi_tv_us.jpg-102-85x%4.png: :0:
MythUIHelper: MythUIHelper::CacheImage : Cache Count = :117: size :0:
ImageLoader::LoadImage(myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-cozi_tv_us.jpg-102-85x%4.png) Found in cache, RefCount = 2
ImageLoader::LoadImage(myth://ChannelIcons@[<IPv6_addr_redacted>%0]:6543/cozi_tv_us.jpg) Image is NULL
MythUIHelper: NOT IN RAM CACHE, Adding, and adding to size :myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-wpwr_my50_chicago.jpg-102-85x%4.png: :0:
MythUIHelper: MythUIHelper::CacheImage : Cache Count = :118: size :0:
ImageLoader::LoadImage(myth:--ChannelIcons@[<IPv6_addr_redacted>]:6543-wpwr_my50_chicago.jpg-102-85x%4.png) Found in cache, RefCount = 2
ImageLoader::LoadImage(myth://ChannelIcons@[<IPv6_addr_redacted>%0]:6543/wpwr_my50_chicago.jpg) Image is NULL

comment:9 Changed 6 years ago by Bill Meek <keemllib@…>

I neglected to add that my successful tests were done on v0.28-pre-472-gdce054f. I don't get the empty %[024]s above. FWIW, Qt version: compile: 4.8.4, runtime: 4.8.4. I use ULAs, and haven't tried Link-Local addresses.

comment:10 in reply to:  7 Changed 6 years ago by Anthony Messina <amessina@…>

Replying to Stuart Morgan <smorgan@…>:

In 02d88eb79ae2ed969094787f641466137079b0f1/mythtv:

Simplify MythCoreContext::GetMasterHostPrefix?(). It's a waste of time to get the IP/port from the socket when we can be using the values from the settings instead, if we're not already connected to the master we will soon be connecting anyway to conduct the file transfer.
(cherry picked from commit 22b48f435a97b6b973a2e0dea9e89548350bc01e)

Refs #11937

This works. Thank you.

MythTV Version : v0.27-78-g4e13424 MythTV Branch : fixes/0.27 Network Protocol : 77 Library API : 0.27.20131107-1 QT Version : 4.8.5

Note: See TracTickets for help on using tickets.