When I am building enigma2 on Ubuntu (trusty) and trying to display menu (using spacebar) it crashes because of an assertion error.
crashdate=Sat Mar 17 12:14:39 2018 compiledate=Mar 17 2018 skin=skin.xml sourcedate=2018-03-10 branch=develop rev=59459e2 component=Enigma2 kernelcmdline=BOOT_IMAGE=/boot/vmlinuz-4.4.0-112-generic root=UUID=c21559dd-2ca1-4b52-af0d-eb13c8f3ca60 ro vga=792 imageissue=Ubuntu 14.04.5 LTS Traceback (most recent call last): File "/usr/local/lib/enigma2/python/Components/ActionMap.py", line 46, in action res = self.actions[action]() File "/usr/local/lib/enigma2/python/Screens/InfoBarGenerics.py", line 876, in mainMenu self.session.openWithCallback(self.mainMenuClosed, MainMenu, menu) File "/usr/local/lib/enigma2/python/mytest.py", line 287, in openWithCallback dlg = self.open(screen, *arguments, **kwargs) File "/usr/local/lib/enigma2/python/mytest.py", line 297, in open dlg = self.current_dialog = self.instantiateDialog(screen, *arguments, **kwargs) File "/usr/local/lib/enigma2/python/mytest.py", line 240, in instantiateDialog return self.doInstantiateDialog(screen, arguments, kwargs, self.desktop) File "/usr/local/lib/enigma2/python/mytest.py", line 257, in doInstantiateDialog dlg = screen(self, *arguments, **kwargs) File "/usr/local/lib/enigma2/python/Screens/Menu.py", line 451, in __init__ Menu.__init__(self, *x) File "/usr/local/lib/enigma2/python/Screens/Menu.py", line 168, in __init__ self.createMenuList() File "/usr/local/lib/enigma2/python/Screens/Menu.py", line 283, in createMenuList self["menu"].updateList(self.list) File "/usr/local/lib/enigma2/python/Components/Sources/List.py", line 102, in updateList assert len(list) == len(self.__list) AssertionErrorSo on Screens/Menu.py init we are starting with an empty list and then call createMenuList.
self["menu"] = List([]) self["menu"].enableWrapAround = True self.createMenuList()But on Sources/List.py we accept lists with the same lenghts!
def updateList(self, list): """Changes the list without changing the selection or emitting changed Events""" assert len(list) == len(self.__list)Of course when assert is comment out, menu is displayed without issues.
But, why we are not getting this problem on our boxes?
Since menu starts with [] and createMenuList adds the real menu elements, assert should always fail the first time!
Obviously it works on enigma2 receivers, but how? What adds values to __list between List([]) and self.createMenuList()?
Edited by athoik, 17 March 2018 - 13:16.