Superb quality and spec AB-Com PULSe 4K SE. Crazy offer! Only £129! FREE UK DELIVERY! 4K UHD, Enigma 2, Multiboot 4 images & more!...
Superb quality and spec AB-Com PULSe 4K Rev II Twin Satellite tuner only £179! FREE UK DELIVERY! 4K UHD, Enigma 2, SATA HDD facility, Multiboot 4 images & more!...

[ViX_Misc] GUI crash trying to list timers when "No Free Tuner" obtains.

Just to confirm that this is reproducible. I have just:

  • re-installed the standard TimerList.py from build 153
  • switched the skin back to ViX-Night-HD (standard)
  • restarted the GUI (to enable the first two parts)
  • started to record the programme on BBC1 (SD)
  • started to record the programme on C4 (SD) - this used the second tuner (I have two)
  • pressed 101<enter> on the keypad to go to BBC1 (HD). With no free tuner this left me with a blank screen (plus the "No Free Tuner" message).
  • pressed the Green button
  • watched as the GUI crashed, counted down for 10s and restarted.
The crash log that resulted is attached View attachment 41083.
I started recording on BBC 1 (101) and Channel 4 (104) (both SD versions) and tried to go to Sky Movies (301) and got "No Free Tuner" and also message about timeshift as well.

I have used menu to re-assign (single) green button to display Movie list but a long press on Green button came up with AutoTimer without a problem. I was also able to go to Timers via menu options again without a problem. This is on default Vix Night skin and my usual skin, BlueHD.

This is all on Solo2, build 153 (clean install with no restore). Only changes I've made to default settings code-wise are implemented Matt007 re-assigning of G-EPG coloured buttons and blue-hd xml skin (slight amendment) and re-assigned (via menu options) the red button for displaying G-EPG and Green button for displaying Movie list. I also used AB E2 28.2 ABM from plugin feeds to generate 28.2 bouquets.
 
Last edited:
What you need to have set to make it happen!!!

I took an image backup then did a fresh install of Apollo 153 with no restore.
All OK.
I compared the root file systems of the two images (having found out how to mount UBI images on my laptop) and, apart from missing extensions and a few config changes, there was no difference.

I then started looking through the settings file and adding things back in, testing as I went until I managed to get it to crash.

The item causing the problem is this:
Code:
config.usage.show_infobar_channel_number=true
If that is there I get the crash. If it isn't there (or is set to false) I don't get the crash.
Makes no sense to me, but that's the way it is.

Given that this is just a one-line fix, and you should be checking that the value you are about to use actually exists anyway, can it just be added?

(And I've now restored my original image...)
 
I took an image backup then did a fresh install of Apollo 153 with no restore.
All OK.
I compared the root file systems of the two images (having found out how to mount UBI images on my laptop) and, apart from missing extensions and a few config changes, there was no difference.

I then started looking through the settings file and adding things back in, testing as I went until I managed to get it to crash.

The item causing the problem is this:
Code:
config.usage.show_infobar_channel_number=true
If that is there I get the crash. If it isn't there (or is set to false) I don't get the crash.
Makes no sense to me, but that's the way it is.

Given that this is just a one-line fix, and you should be checking that the value you are about to use actually exists anyway, can it just be added?
I have this line in my settings file within /etc/engima2 and I can't re-create this crash.

As this refers to channel numbers could this be related to ABM then otherwise I would be able to re-create it?

I can't test this on a DVB-T system as I only have DVB-S2 on my solo2. I do, however, use a separate plugin for 28.2 bouquets so I will remove that and go back to default ABM for "Sky (UK) SD".
 
Last edited:
@Birdman, can you confirm that to you're able to get it to crash when going into Timers via the menu system rather than green button? I know it shouldn't make a difference but it narrows it down ever so slightly further lol.
 
I don't use ABM at all. I generate my own bouquet files from lamedb using a Perl script on my laptop. This is because when I got the box ABM didn't handle terrestrial HD at all, and picons didn't work either (as they then relied on service ids, which may differ according to transmitter)
 
I don't use ABM at all. I generate my own bouquet files from lamedb using a Perl script on my laptop. This is because when I got the box ABM didn't handle terrestrial HD at all, and picons didn't work either (as they then relied on service ids, which may differ according to transmitter)
I think picons now are based on channel name rather than service IDs but still not sure if that would allow you use to picons with T/T2 transmissions.

Maybe try using ABM (even if it's without picons) to see if that causes problem as that single line refers to displaying channel number within infobar? I'm going to to do further testing with built-in ABM and different bouquets.
 
@Birdman, can you confirm that to you're able to get it to crash when going into Timers via the menu system rather than green button? I know it shouldn't make a difference but it narrows it down ever so slightly further lol.
When I go via the menus it crashes in the same way (just tried it).
It happens when it tries to work out how to display the list, so it doesn't surprise me that it makes no difference what caused that to happen.
 
Last edited:
I think picons now are based on channel name rather than service IDs
Both. So you can either use the service ref, or you can name the picon bbcone.png or bbconehd.png and it will be used by sat/terrestrial/cable, and be shared between all channels with that name.
 
I think I know why this settings value can cause the problem.

The Timer list (and the EPG - which may suffer the same problem, but I have recordings about to start so can't check) put the current channel in a small box at the top right.
It isn't that which is the problem per se, but this is overlaid with the channel name and, if config.usage.show_infobar_channel_number=true, it will prepend the channel number. It's something to do with displaying this channel number that's the issue, so perhaps a bit odd that it's getting (or rather trying to remove) skin attributes which is happening at the time of the crash.
 
Curioser and curioser.

The Timer list (and the EPG - which may suffer the same problem, but I have recordings about to start so can't check)....
I've now checked. It (the MultiEPG) does indeed have a problem - just not a crash. If you have config.usage.show_infobar_channel_number=true then trying to display the EPG will leave you with an empty EPG table. This is similar to my "fix" for the Timer list crash - which does stop the crash, but doesn't actually display the Timer list.

If you aren't displaying channel numbers in the InfoBar (which also affects the smaller screen in the skin I use for these listing screens) then both work properly even when there is "No Free Tuner".

So there is more than this than there appeared to be.

PS: A "simpler" fix to stop the original crash is changing line 138 in TimerList.py from
Code:
        for (attrib, value) in list(self.skinAttributes):
to
Code:
        for (attrib, value) in list(self.skinAttributes or ""):
which ensures it always has at least an empty list.
 
I did notice the EPG table being empty when no free tuners and on a transponder that can't be viewed but like you said it didn't crash.

It's only a minor thing but would it be possible to code both these so that a message is displayed to indicate something rather than it being just blank?
 
Debuging goes deeper...

I was thinking more along the lines of actually getting it to work, since it's quite happy to do so when channel numbers are not being displayed in the PIG.

To that end I've printed out what skin attributes it is actually removing in the loop at TimerListEdit.py:138 when it works. This is:
Code:
[GML] In applySkin
[GML] remove  foregroundColor = window-fg
[GML] remove  itemHeight = 48
[GML] remove  selectionPixmap = /usr/share/enigma2/%GML_ViX-Night-HD/ViX-Common/buttons/FocusBar_H50x660.png
[GML] remove  scrollbarMode = showOnDemand
[GML] remove  backgroundColor = window-bg
[GML] remove  transparent = 0
[GML] remove  enableWrapAround = 1
[GML] remove  position = 10,82
[GML] remove  size = 660,576
[GML] leaving applySkin
When it crashes there is nothing being passed in to remove.

These are the attributes of the timerlist widget in the TimerEditList screen of the skin (see CommonSkin.xml).

So I have to work backwards from there...
If anyone has any ideas/knowledge them feel free to join in.
 
I always find it helps to read debug logs a few times....
I've only just noticed that while the displays which work go straight from
Code:
action ->  InfobarSubserviceSelectionActions GreenPressed
to what I posted above, the one which fails to display (and would crash without the one-line fix I'm running with) does this:
Code:
action ->  InfobarSubserviceSelectionActions GreenPressed
[Skin] SKIN ERROR in TimerEditList: 'NoneType' object has no attribute 'toString'
warning, skin is missing element key_yellow in <class 'Screens.TimerEdit.TimerEditList'>
warning, skin is missing element description in <class 'Screens.TimerEdit.TimerEditList'>
warning, skin is missing element key_blue in <class 'Screens.TimerEdit.TimerEditList'>
[GML] In applySkin
[GML] leaving applySkin
warning, skin is missing element timerlist in <class 'Screens.TimerEdit.TimerEditList'>
warning, skin is missing element key_green in <class 'Screens.TimerEdit.TimerEditList'>
warning, skin is missing element key_red in <class 'Screens.TimerEdit.TimerEditList'>
[SKIN] No skin to read...
So we arrived via skin.py:997, which threw the exception. Something else is being passed a Null object.

(The successful displays also print the "No skin to read..." message, so that's not the issue).
 
Oh yes.
The only thing which actually uses config.usage.show_infobar_channel_number is ServiceName.py.
And it's possible that I see the bug.....but I have a recording running so can't check at the moment.
 
Well, that's exactly what I was going to test. No mention of that in this thread, though, so I didn't know anything had been done.

I'd also recommend adding the fix in TimerList.py as well. Just in case anything else arrives there with a null value in the future. An empty screen is better than a GUI crash during multiple recordings.
 
I can confirm that this patch to Servicename.py works. The Timer list and EPG now show up when viewed from a screen with "No Free Tuner" (but, obviously, without the channel number being shown in the PIG).
 

OpenViX Feeds Status

Back
Top