openatv / enigma2

openatv-gui
GNU General Public License v2.0
200 stars 317 forks source link

Segmentation fault on EPG + MHW2 #430

Closed ghost closed 8 years ago

ghost commented 8 years ago

Trying to update EPG with MHW2 over service 1:0:1:75C6:422:1:C00000:0:0:0: C+PORTADA Rest of services work fine.

Enigma2 log:

01:17:07.008 dvb/dvbtime.cpp:416 updateTime [eDVBLocalTimerHandler] Transponder time is 07.08.2016 01:17:06 01:17:07.008 dvb/dvbtime.cpp:429 updateTime [eDVBLocalTimerHandler] diff is -1 01:17:07.008 dvb/dvbtime.cpp:432 updateTime [eDVBLocalTimerHandler] diff < 120 .. use Transponder Time 01:17:07.008 dvb/dvbtime.cpp:49 setRTC [eDVBLocalTimerHandler] set RTC Time 01:17:07.009 dvb/dvbtime.cpp:40 noRTC [eDVBLocalTimerHandler] Boxtype = [gbx3] 01:17:07.009 dvb/dvbtime.cpp:502 updateTime [eDVBLocalTimerHandler] update RTC 01:17:07.009 dvb/dvbtime.cpp:522 updateTime [eDVBLocalTimerHandler] time update to 01:17:06 01:17:07.009 dvb/dvbtime.cpp:525 updateTime [eDVBLocalTimerHandler] m_time_difference is -1 01:17:07.009 dvb/dvbtime.cpp:529 updateTime [eDVBLocalTimerHandler] set Linux Time 01:17:06.009 dvb/dvbtime.cpp:540 updateTime [eDVBLocalTimerHandler] time after update is 01:17:06 01:17:06.379 dvb/epgcache.cpp:1558 startEPG [EPGC] start caching events 01:17:07.117 dvb/pmt.cpp:737 SDTScanEvent sdt update done! 01:17:07.343 Plugins/SystemPlugins/VFDControl/plugin.py:481 delay_init [LED-GIGA] delay init on boot 01:17:07.344 Plugins/SystemPlugins/VFDControl/plugin.py:321 initLED [LED-GIGA] initVFD box = gbx3 01:17:07.372 dvb/epgcache.cpp:4644 readMHWData2 [EPGC] mhw2 114 channels found STB does not support to show clock in Deep Standby 01:17:07.615 dvb/epgcache.cpp:4649 readMHWData2 [EPGC] mhw2 themes nyi 01:17:13.924 dvb/epgcache.cpp:1741 abortNonAvail [EPGC] abort non avail schedule reading 01:17:13.925 dvb/epgcache.cpp:1748 abortNonAvail [EPGC] abort non avail schedule other reading 01:17:13.925 dvb/epgcache.cpp:1772 abortNonAvail [EPGC] abort non avail netmed schedule reading 01:17:13.926 dvb/epgcache.cpp:1779 abortNonAvail [EPGC] abort non avail netmed schedule other reading 01:17:13.926 dvb/epgcache.cpp:1788 abortNonAvail [EPGC] abort non avail FreeSat schedule_other reading 01:17:13.926 dvb/epgcache.cpp:1799 abortNonAvail [EPGC] abort non avail viasat reading 01:17:14.987 dvb/epgcache.cpp:2046 readData [EPGC] nownext 01:17:14.987 dvb/epgcache.cpp:2087 readData finished(1470525434) 01:17:16.600 dvb/epgcache.cpp:4672 readMHWData2 mhw2 title table invalid!! (...) 01:19:05.791 dvb/epgcache.cpp:4672 readMHWData2 mhw2 title table invalid!! 01:19:33.376 dvb/epgcache.cpp:4820 readMHWData2 [EPGC] mhw2 13383 titles(13321 with summary) found 01:20:02.201 Plugins/Extensions/AutoTimer/AutoPoller.py:35 query [AutoTimer] Auto Poll 01:20:02.202 Plugins/Extensions/AutoTimer/AutoPoller.py:49 query [AutoTimer] Auto Poll Started 01:20:02.214 Components/Task.py:375 jobDone job Components.Task.Job name=Autotimer #tasks=0 completed with [] in None 01:20:36.348 dvb/epgcache.cpp:4963 readMHWData2 [EPGC] mhw2 finished(1470525636) 7522 summaries not found 01:20:36.348 dvb/epgcache.cpp:1537 finishEPG [EPGC] stop caching events 01:20:36.349 dvb/epgcache.cpp:1539 finishEPG [EPGC] next update in 60 min Segmentation fault

mhw_Log.epg:

root@gbx3:~# tail -f /tmp/mhw_Log.epg 07/08/2016 01:15:40 EPG download in Mediahighway 2 (New) 07/08/2016 01:15:40 Days: 7 07/08/2016 01:15:40 Channels nbr.: 114 07/08/2016 01:15:40 Equivalences Nbr.: 100 07/08/2016 01:19:33 Titles Nbr.: 19159 07/08/2016 01:19:33 Titles Nbr. with summary: 19097 07/08/2016 01:20:36 Summaries not found: 7522 07/08/2016 01:20:36 mhw2 EPG download finished

epg.dat doesn't saved. Tested with v5.2BETA & latest v5.3

ghost commented 8 years ago

I can see this log with this patchsets: https://goo.gl/KO3uGj https://goo.gl/tyJH5b

21:28:47.435 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:43 emcDebugOut EMC: Setting EPG language: es_ES 21:28:47.763 dvb/epgcache.cpp:1561 startEPG [EPGC] start caching events 21:28:47.763 dvb/epgcache.cpp:3963 cleanupMHW parando m_MHWTimeoutTimer 21:28:47.763 dvb/epgcache.cpp:3965 cleanupMHW limpiando m_channels 21:28:47.763 dvb/epgcache.cpp:3967 cleanupMHW limpiando m_themes 21:28:47.763 dvb/epgcache.cpp:3969 cleanupMHW limpiando m_titles 21:28:47.763 dvb/epgcache.cpp:3971 cleanupMHW limpiando m_titlesID 21:28:47.763 dvb/epgcache.cpp:3973 cleanupMHW limpiando m_program_ids 21:28:47.763 dvb/epgcache.cpp:3975 cleanupMHW limpieza completada 21:28:47.950 dvb/pmt.cpp:738 SDTScanEvent sdt update done! 21:28:48.047 dvb/pmt.cpp:237 AITready AITready 21:28:48.081 dvb/pmt.cpp:323 OCready OCready 21:28:48.284 Plugins/Extensions/EnhancedMovieCenter/VlcPluginInterface.py:54 [VLC] Checking for buildin servicets ... no 21:28:48.287 Plugins/Extensions/EnhancedMovieCenter/VlcPluginInterface.py:59 [VLC] Checking for existing and usable servicets.so ... No module named servicets 21:28:48.287 Plugins/Extensions/EnhancedMovieCenter/VlcPluginInterface.py:62 [VLC] Checking for usable gstreamer service ... yes 21:28:48.459 Plugins/Extensions/EnhancedMovieCenter/MovieSelection.py:90 [EMCMS] python-mutagen is not available: No module named mutagen.mp3 21:28:48.466 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:43 emcDebugOut EMC: Next trashcan cleanup in 212 minutes 21:28:48.467 Plugins/SystemPlugins/VFDControl/plugin.py:481 delay_init [LED-GIGA] delay init on boot 21:28:48.468 Plugins/SystemPlugins/VFDControl/plugin.py:321 initLED [LED-GIGA] initVFD box = gbx3 STB does not support to show clock in Deep Standby 21:28:48.917 dvb/epgcache.cpp:4654 readMHWData2 [EPGC] mhw2 114 channels found 21:28:49.216 dvb/epgcache.cpp:4659 readMHWData2 [EPGC] mhw2 themes nyi 21:28:50.469 Plugins/Extensions/EnhancedMovieCenter/EMCTasker.py:43 emcDebugOut EMC: [EMCMS] trashcan cleanup: no trashcan... 21:28:54.773 dvb/epgcache.cpp:1744 abortNonAvail [EPGC] abort non avail schedule reading 21:28:54.774 dvb/epgcache.cpp:1751 abortNonAvail [EPGC] abort non avail schedule other reading 21:28:54.775 dvb/epgcache.cpp:1775 abortNonAvail [EPGC] abort non avail netmed schedule reading 21:28:54.776 dvb/epgcache.cpp:1782 abortNonAvail [EPGC] abort non avail netmed schedule other reading 21:28:54.776 dvb/epgcache.cpp:1791 abortNonAvail [EPGC] abort non avail FreeSat schedule_other reading 21:28:54.776 dvb/epgcache.cpp:1802 abortNonAvail [EPGC] abort non avail viasat reading 21:28:54.786 dvb/epgcache.cpp:2049 readData [EPGC] nownext 21:28:54.786 dvb/epgcache.cpp:2090 readData finished(1470598134) 21:29:36.304 dvb/epgcache.cpp:4682 readMHWData2 mhw2 title table invalid!! (...) 21:29:57.591 dvb/epgcache.cpp:4682 readMHWData2 mhw2 title table invalid!! 21:31:03.021 dvb/epgcache.cpp:4830 readMHWData2 [EPGC] mhw2 13039 titles(12970 with summary) found 21:31:43.133 Plugins/Extensions/AutoTimer/AutoPoller.py:35 query [AutoTimer] Auto Poll 21:31:43.134 Plugins/Extensions/AutoTimer/AutoPoller.py:49 query [AutoTimer] Auto Poll Started 21:31:43.146 Components/Task.py:375 jobDone job Components.Task.Job name=Autotimer #tasks=0 completed with [] in None 21:32:22.819 dvb/epgcache.cpp:4973 readMHWData2 [EPGC] mhw2 finished(1470598342) 5596 summaries not found 21:32:22.819 dvb/epgcache.cpp:1537 finishEPG [EPGC] stop caching events 21:32:22.820 dvb/epgcache.cpp:1539 finishEPG [EPGC] next update in 60 min 21:32:22.820 dvb/epgcache.cpp:1546 finishEPG Previo limpieza 21:32:22.820 dvb/epgcache.cpp:3963 cleanupMHW parando m_MHWTimeoutTimer 21:32:22.821 dvb/epgcache.cpp:3965 cleanupMHW limpiando m_channels 21:32:22.821 dvb/epgcache.cpp:3967 cleanupMHW limpiando m_themes 21:32:22.821 dvb/epgcache.cpp:3969 cleanupMHW limpiando m_titles 21:32:22.825 dvb/epgcache.cpp:3971 cleanupMHW limpiando m_titlesID 21:32:22.838 dvb/epgcache.cpp:3973 cleanupMHW limpiando m_program_ids 21:32:22.843 dvb/epgcache.cpp:3975 cleanupMHW limpieza completada 21:32:22.843 dvb/epgcache.cpp:1548 finishEPG Post limpieza 21:32:22.843 dvb/epgcache.cpp:1555 finishEPG Liberada cache 21:32:22.843 bsod.cpp:304 oops PC: 76ac4008 21:32:22.843 bsod.cpp:310 oops 00000000 00000001 76c02f10 76c302e4 21:32:22.843 bsod.cpp:310 oops 00000000 714b5570 00000000 7139cd17 21:32:22.843 bsod.cpp:310 oops 80808080 0024f486 00000000 65657661 21:32:22.843 bsod.cpp:310 oops 69666d32 00000054 00000001 00670000 21:32:22.843 bsod.cpp:310 oops 714b5570 76ad7584 72630be8 714b5570 21:32:22.844 bsod.cpp:310 oops 012f02d8 00000001 005a5710 00000000 21:32:22.844 bsod.cpp:310 oops 0067132c 76ac3fcc fefefeff 00000000 21:32:22.844 bsod.cpp:310 oops 76c31e10 73269860 7326acd0 76b6e9f0 21:32:22.845 bsod.cpp:327 print_backtrace Backtrace: 21:32:22.846 bsod.cpp:335 print_backtrace enigma2(_Z17handleFatalSignaliP9siginfo_tPv) [0x4606DC] Segmentation fault

mhw_Log.epg:

root@gbx3:~# tail -f /tmp/mhw_Log.epg 07/08/2016 21:28:48 EPG download in Mediahighway 2 (New) 07/08/2016 21:28:48 Days: 7 07/08/2016 21:28:48 Channels nbr.: 114 07/08/2016 21:28:48 Equivalences Nbr.: 0 07/08/2016 21:31:03 Titles Nbr.: 18957 07/08/2016 21:31:03 Titles Nbr. with summary: 18888 07/08/2016 21:32:22 Summaries not found: 5596 07/08/2016 21:32:22 mhw2 EPG download finished

atvcaptain commented 8 years ago

to check this , we dont have and paytv smartcard from this provider, is this possible only with fta channels on hotbild or astra ?

ghost commented 8 years ago

Yes! It's very easy to reproduce. Smartcard or softcams aren't necessary. Perform a clean install if you considered. Enable MHW2 EPG. Scan the transponder: 10847.00 V DVB-S 22000 5/6 (19.2E Astra 1M). Now you have got the SID 30150 PORTADA where the provider sends the EPG for all services. Watch this service for about 5-6min while you see the log of enigma or mhw_Log.epg. The segfault will occur after this time. I've pasted some logs with this bug above. Thanks for your attention.

atvcaptain commented 8 years ago

then you enable the function and dont leave the menu have you the segfault too after 5-6 min

ghost commented 8 years ago

No, I perform a restart GUI after enable MHW2. Then, when I try to watch the SID 30150 and enigma2 starts to received the EPG (startEPG [EPGC] start caching events), enigma2 crash just after "finishEPG [EPGC] next update in 60 min". For other services with MHW2-EPG for its transponder only, enigma doesn't crash and work properly.

ghost commented 8 years ago

Atvcaptain, I've tried your option. Enable function over service PORTADA, but doesn't update EPG cache until 60min. If I enable function over other service and change to PORTADA, download EPG begins but crash enigma2 with this log:

22:49:18.070 dvb/epgcache.cpp:4672 readMHWData2 mhw2 title table invalid!! 22:49:57.772 Plugins/Extensions/AutoTimer/AutoPoller.py:35 query [AutoTimer] Auto Poll 22:49:57.773 Plugins/Extensions/AutoTimer/AutoPoller.py:49 query [AutoTimer] Auto Poll Started 22:49:57.783 Components/Task.py:375 jobDone job Components.Task.Job name=Autotimer #tasks=0 completed with [] in None 22:50:18.837 dvb/epgcache.cpp:4820 readMHWData2 [EPGC] mhw2 12758 titles(12674 with summary) found 22:51:33.142 dvb/epgcache.cpp:4963 readMHWData2 [EPGC] mhw2 finished(1470689493) 5687 summaries not found 22:51:33.143 dvb/epgcache.cpp:1537 finishEPG [EPGC] stop caching events 22:51:33.143 dvb/epgcache.cpp:1539 finishEPG [EPGC] next update in 60 min 22:51:33.164 bsod.cpp:304 oops PC: 76c90008 22:51:33.166 bsod.cpp:310 oops 00000000 00000001 76dcef10 76dfc2e4 22:51:33.166 bsod.cpp:310 oops 00000000 7146e8f0 00000000 725f265f 22:51:33.166 bsod.cpp:310 oops 80808080 84080018 00000000 65657661 22:51:33.166 bsod.cpp:310 oops 73451a40 0000003c 005ad138 00670000 22:51:33.166 bsod.cpp:310 oops 7146e8f0 76ca3584 727de530 7146e8f0 22:51:33.166 bsod.cpp:310 oops 01293d88 00000001 005a5600 00000000 22:51:33.167 bsod.cpp:310 oops 0067132c 76c8ffcc 00888de8 00000000 22:51:33.167 bsod.cpp:310 oops 76dfde10 73451860 73452cd0 76d3a9f0 Segmentation fault

pizzelnet commented 8 years ago

I don't know if this could help. This problem only happens when you set 4 or more days as the maximum number of days to download the EPG. If set in 3, the MHW2 EPG downloads very fast and Enigma2 GUI does not crash and restart. Other images such as OpenSPA and OpenLD got rid of this problem by deleting this function:

    bool save_epg = eConfigManager::getConfigBoolValue("config.epg.saveepg", true);
    if (save_epg)

So I guess the problem should be related with it.

ghost commented 8 years ago

I'll test this: https://github.com/djMesias/enigma2/commit/1268d95e7869bb20fe818cbedf2e98aaf4102c05 because mhw2 for <4 days works (thanks @pizzelnet), and that function doesn't save cache. Maybe this is the solution.

@pizzelnet, save_epg works properly, and this function is called on exit enigma2 or by timer. Can be remained.

ghost commented 8 years ago

@atvcaptain I've tested https://github.com/djMesias/enigma2/commit/1268d95e7869bb20fe818cbedf2e98aaf4102c05 and it solves the problem for mhw2 epg if is set 4 or more days. In my humble opinion it can be merged.

PD. This provider is not sending correctly the epg through SID 30150 just now, but without this patch segfault is here too.

PD2. @pizzelnet your solution works too, but it saves the epg always, without the user's approval: https://github.com/djMesias/enigma2/commit/986521d985720232b813a1c1975e119dcfb1c272

atvcaptain commented 8 years ago

@djMesias i see test2,3,4 etc all or only last ?

ghost commented 8 years ago

@atvcaptain I've created a new pull request with the correct patch (my test2 branch). Thanks. https://github.com/openatv/enigma2/pull/433

atvcaptain commented 8 years ago

ok fine , i have merge thx for help