CastagnaIT / plugin.video.netflix

InputStream based Netflix plugin for Kodi
MIT License
1.91k stars 260 forks source link

AddonSignals: call timeout - when you browse having a lot of items on my list (ARM) #716

Closed ffpp2003 closed 4 years ago

ffpp2003 commented 4 years ago

Bug report

Your Environment

Used Operating system:

Describe the bug

I'm trying to open Netflix on LibreElec and the error AddonSignals: call timeout

Expected behavior

Open Netflix without showing up the error AddonSignals: call timeout

Actual behavior

Opening Netflix generates the error AddonSignals: call timeout, and after pressing ok, exits Netflix

Steps to reproduce the behavior

  1. Turn on pc
  2. Open Netflix
  3. If Netflix takes a long time to load, probably, the error will show up

Possible fix

Optimize AddonSignals???

Debug log

The debug log can be found from this link: https://pastebin.com/Xpn6sMvW

I had the opportunity to reproduce the error two or three times in a row. Sorry if the log is too long, I don't know how to start a new one. (I'm new in GitHub and in log setup and log exporting, so, if I did something wrong, please, tell me how to do it right)

Additional context or screenshots (if appropriate)

Installation

Other information

Screenshots

CastagnaIT commented 4 years ago

a long log is good, to reset the log you have to reboot the device

from what i see your network takes too long to answer the network doesn't seem to be working properly there are no errors

jakermx commented 4 years ago

@CastagnaIT , maybe it could be useful to add a timeout parameter on settings, that users with low quality internet like me, could set, instead of the 16 sec that is defined by default, it works for both AddOn Signals and IPC.

I have to mod files everytime I update the AddOn, in my case, I have to set it to 60 sec, caus "My List" has a lot of titles.

ffpp2003 commented 4 years ago

@CastagnaIT , maybe it could be useful to add a timeout parameter on settings, ...

I think that would be a good addition

CastagnaIT commented 4 years ago

2020-06-24 19:56:22.816 T:140542805538560 DEBUG: [plugin.video.netflix (0)] Fetch initial page 2020-06-24 19:56:22.816 T:140542805538560 DEBUG: [plugin.video.netflix (0)] Executing GET request to https://www.netflix.com/browse 2020-06-24 19:56:25.251 T:140542805538560 DEBUG: [plugin.video.netflix (0)] Request took 0.438476s

this is the normal behaviour when your network is good the issue happen when "Fetch initial page" not receive data

@jakermx this is not a path request that could require more time of usual, it is a normal http request to fetch web page

the time stat in the log provided is always less than 1 second so the problem is not network speed are other issues the web page is not responding

jakermx commented 4 years ago

@CastagnaIT I can find what you post on 140542805538560.....

look at line 905..

2020-06-24 19:50:32.424 T:140542805538560 DEBUG: [plugin.video.netflix (0)] Executing GET request to https://www.netflix.com/browse

It looks fine, but crashes after LE Update crashes....LE crashed at 921 and NF on 939, maybe they are related on urlib or the pipes used by it...IDK, just guessing

In my case, I got it caus poor internet or high cpu usage on my rpi

CastagnaIT commented 4 years ago
020-06-24 19:50:36.841 T:140542398170880   ERROR: ## LibreELEC Addon ## oe::load_url(https://update.libreelec.tv/updates.php?i=c168903dc5f915a0db4ebc375ef3490f&d=LibreELEC&pa=Generic.x86_64&v=9.2.3&f=radeon) ## ERROR: (URLError(SSLError('_ssl.c:711: The handshake operation timed out',),))
2020-06-24 19:50:36.841 T:140542398170880   ERROR: Traceback (most recent call last):
                                              File "/home/jails/home/jenkins/LE/build2/workspace/Generic/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2.3/LibreELEC-settings-42acf2613927fa93d9d8ec9aa1d3135d101db0e0/.install_pkg/usr/share/kodi/addons/service.libreelec.settings/oe.py", line 362, in load_url
                                              File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
                                              File "/usr/lib/python2.7/urllib2.py", line 429, in open
                                              File "/usr/lib/python2.7/urllib2.py", line 447, in _open
                                              File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
                                              File "/usr/lib/python2.7/urllib2.py", line 1241, in https_open
                                              File "/usr/lib/python2.7/urllib2.py", line 1198, in do_open
                                            URLError: 
2020-06-24 19:50:36.842 T:140542398170880   ERROR: ## LibreELEC Addon ## updates::check_updates_v2 ## ERROR: (TypeError('expected string or buffer',))
2020-06-24 19:50:36.842 T:140542398170880   ERROR: Traceback (most recent call last):
                                              File "/home/jails/home/jenkins/LE/build2/workspace/Generic/LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2.3/LibreELEC-settings-42acf2613927fa93d9d8ec9aa1d3135d101db0e0/.install_pkg/usr/share/kodi/addons/service.libreelec.settings/resources/lib/modules/updates.py", line 564, in check_updates_v2
                                              File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
                                              File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
                                            TypeError: expected string or buffer

i see these errors on LibreELEC for about a month it is strange that they not fix this breaking errors or at least manage them in some way without causing exceptions

risogolo commented 4 years ago

I have got 120 Mbit internet so I believe the network speed should not be an issue

DimitriosPi commented 4 years ago

I have the same problem with latest coreelec on tvbox. Actually 2 tv boxes with coreelec and one with libreelec.

DimitriosPi commented 4 years ago

Widevine asked for an update, after that the issue was resolved, at least on Tanix 9s with coreelec 9.2

CastagnaIT commented 4 years ago

I have to mod files everytime I update the AddOn, in my case, I have to set it to 60 sec, caus "My List" has a lot of titles.

@jakermx can you say me the number of titles you have in my list?

jakermx commented 4 years ago

1st profile with 145 in 2 Pages 2nd with 192

montvid commented 4 years ago

Got the same problem of timeout. https://paste.gnome.org/p0zfdzo39/d0ql9m

Dominit86 commented 4 years ago

I have this problem to with Kingston class 1 sdcard. Now i use Samsung EVO Plus and no more timeout error.

Keep in mind english it's not my native language.

risogolo commented 4 years ago

the issue remains, unable to watch, I will have to cancel my netflix subscription

jakermx commented 4 years ago

the issue remains, unable to watch, I will have to cancel my netflix subscription

Dont need to be that drastic, grep for urlib under netflix addon and add timeout parameter and set it to a timeot up to your needs...... it works cool, if you dont know how , just need to click menus twice or at most, three times.

risogolo commented 4 years ago

the issue remains, unable to watch, I will have to cancel my netflix subscription

Dont need to be that drastic, grep for urlib under netflix addon and add timeout parameter and set it to a timeot up to your needs...... it works cool, if you dont know how , just need to click menus twice or at most, three times.

Can you describe how-to please, regarding going trough the menu, I tried yestarday much more times than 3 and I did not work, so I cannot watch at all

CastagnaIT commented 4 years ago

I want to point out that the error AddonSignals: call timeout not means exclusively net slowness

may have resulted from other problems inside or also outside like the example of @Dominit86 (that can happen also with slow mechanical HDD) therefore each case must be evaluated separately

montvid commented 4 years ago

Yeah, i'm using libreelec on USB 2 stick. Will try sata ssd next. :) But maybe it is a good idea to put this functionality in RAM?

CastagnaIT commented 4 years ago

But maybe it is a good idea to put this functionality in RAM?

what functionality? IPC is not a functionality

montvid commented 4 years ago

But maybe it is a good idea to put this functionality in RAM?

what functionality? IPC is not a functionality

Well if the timeout depends on the media one is running kodi on then how to remove that dependency? Get a faster media like an ssd?

ffpp2003 commented 4 years ago

I want to point out that the error AddonSignals: call timeout not means exclusively net slowness

may have resulted from other problems inside or also outside like the example of @Dominit86 (that can happen also with slow mechanical HDD) therefore each case must be evaluated separately

If the problem is the HDD, I have a mechanical HDD, to be precise, a western digital wd320aaks

CastagnaIT commented 4 years ago

i have improved the initial data collection part when accessing menu lists for first time and slightly increased the timeout time

For the case of @jakermx that have more than 140 items to my list: at first access to "my list" (or other lists) were performed 3 http requests, and now should be done only one request with a great time saving, in theory, because i do not havemany titles in mylist, so let me know it is probable that is not more needed to change the timeout value

For @risogolo: i do not know your real situation without debug log, so if you want you can try the test

For @montvid: I don't know what you mean, but the way you're talking, i don't think you're familiar with the Python environment so no operation are performed on disk, at least not directly from the addon maybe from some python module that i can not control. The timeout can not be removed is a safety measure to avoid block the Kodi system in particular cases, and assigning a very high timeout is not good practice. Your attached log is inaccessible, then i can not say nothing for your situation, so if you want you can try the test

For @franchetoxx; Your case is slightly different, but also you can try the test

~Update test for Kodi 18: [plugin.video.netflix_1.6.0_20200706_t1.zip]~ Update test for Kodi 18: plugin.video.netflix_1.6.0_20200707_t2.zip

risogolo commented 4 years ago

I provided my log here https://github.com/CastagnaIT/plugin.video.netflix/issues/711

ffpp2003 commented 4 years ago

i have improved the initial data collection part when accessing menu lists for first time and slightly increased the timeout time

For the case of @jakermx that have more than 140 items to my list: at first access to "my list" (or other lists) were performed 3 http requests, and now should be done only one request with a great time saving, in theory, because i do not havemany titles in mylist, so let me know it is probable that is not more needed to change the timeout value

For @risogolo: i do not know your real situation without debug log, so if you want you can try the test

For @montvid: I don't know what you mean, but the way you're talking, i don't think you're familiar with the Python environment so no operation are performed on disk, at least not directly from the addon maybe from some python module that i can not control. The timeout can not be removed is a safety measure to avoid block the Kodi system in particular cases, and assigning a very high timeout is not good practice. Your attached log is inaccessible, then i can not say nothing for your situation, so if you want you can try the test

For @franchetoxx; Your case is slightly different, but also you can try the test

Update test for Kodi 18: plugin.video.netflix_1.6.0_20200706_t1.zip

As soon as I can, I'll try that zip

CastagnaIT commented 4 years ago

I provided my log here #711

The log is wrong

risogolo commented 4 years ago

I provided my log here #711

The log is wrong

What's wrong, I followed rules, can you let me know, I'm willing to provide log and all what's necessary

CastagnaIT commented 4 years ago

no rules followed: These are the explicit rules for Issue Post:

### Debug log
1) Go to add-on settings, in Expert page and change "Debug logging level" to "Verbose"
2) Enable Kodi debug: go to Kodi Settings > System Settings > Logging, and enable "Enable debug logging"
3) How to get the log file? Read Kodi wiki: https://kodi.wiki/view/Log_file/Easy
RESPECT THE RULES!
- A DEBUG LOG IS ALWAYS MANDATORY WHEN CREATING AN ISSUE. PROVIDE A LINK TO THE LOG!
- DO NOT PASTE THE CONTENT OF THE LOG HERE
- DO NOT CUT THE LOG
- If the log file is really huge (more 1Mb) in Kodi settings disable "Component-specific logging" then create a new log

In the Readme is also well explained how get a good log (i have copied the rules also to readme so i hope now it is clear to all)

Your log is cutted, without debug info, and without nf debug enabled

risogolo commented 4 years ago

hopefully goodone - log

CastagnaIT commented 4 years ago

well now it is good! i have added a new test in upper message https://github.com/CastagnaIT/plugin.video.netflix/issues/716#issuecomment-654361188

the weird thing is that the timeout is occurred before his real end time... please install the update test, before using it do a "Clear cache mem & disk" from expert settings, then provide me a new log

risogolo commented 4 years ago

well now it is good! i have added a new test in upper message #716 (comment)

the weird thing is that the timeout is occurred before his real end time... please install the update test, before using it do a "Clear cache mem & disk" from expert settings, then provide me a new log

How to install from zip?, I used repository for installation

CastagnaIT commented 4 years ago

from kodi addons section, "install from zip" but there is a new release 1.6.1 out today, then you have to temporary disable the addon autoupdate (addon icon context menu "information",then auto-update to off) otherwise the test will be overwritten from the new version (after zip install)

risogolo commented 4 years ago

log fom the version lugin.video.netflix_1.6.0_20200707_t2 log

CastagnaIT commented 4 years ago

@risogolo apparently seems the code flow is blocked somewhere but i have too little data to understand something i need that you install this test and that you reply same navigation steps, so i can get more info from debug log: plugin.video.netflix_1.6.1_20200708_t3.zip

risogolo commented 4 years ago

log from plugin.video.netflix_1.6.1_20200708_t3.zip

CastagnaIT commented 4 years ago

good we are already narrowing the field on the problem i need another log please do again the steps with this: plugin.video.netflix_1.6.1_20200708_t4.zip

risogolo commented 4 years ago

1,9 MB plugin.video.netflix_1.6.1_20200708_t4

CastagnaIT commented 4 years ago

well, I wasn't expecting a situation like this, the addon continue to elaborate data, then the problem is not here, but seem that AddonSignals dependency stop the communication for some unknown reason

i need another debug, always same navigation steps this time i have added also "addon.signals" zip test update where i hope i can see what happen so install both zips

~[plugin.video.netflix_1.6.1_20200709_t5.zip]~ ~[script.module.addon.signals-0.0.5_debug.zip]~

UPDATE:

i have done some test on my arm device with CoreElec, i think i found an issue on AddonSignals dependency that cause problems i think on all ARM devices i will attach an AddonSignal dependency add-on fixed shortly

CastagnaIT commented 4 years ago

This is the fixed version, please test and let me know

@risogolo before run netflix restore the regular NF add-on version: To restore regular version: On NF icon, open the context menu "informations", select "Update" and select the latest version. (if all is ok you can re-enable also auto-update)

AddonSignals dependency fixed (for Kodi 18.x): script.module.addon.signals-0.0.5_patched.zip

risogolo commented 4 years ago

This is the fixed version, please test and let me know

@risogolo before run netflix restore the regular NF add-on version: To restore regular version: On NF icon, open the context menu "informations", select "Update" and select the latest version. (if all is ok you can re-enable also auto-update)

AddonSignals dependency fixed (for Kodi 18.x): script.module.addon.signals-0.0.5_patched.zip

So should I use latest regular version of addon and then install script.module.addon.signals-0.0.5_patched.zip ?

CastagnaIT commented 4 years ago

yes right

risogolo commented 4 years ago

I upgraded to the latest regular version and then install signals addon, the same issue occurs, I will provide log once i will have a time

risogolo commented 4 years ago

patched

CastagnaIT commented 4 years ago

ok now the timing of addonsignals is right, now try install the test 2 again from upper post https://github.com/CastagnaIT/plugin.video.netflix/issues/716#issuecomment-654361188

risogolo commented 4 years ago

ok now the timing of addonsignals is right, now try install the test 2 again from upper post #716 (comment)

are you sure t2, we had already t4, so should I install t2 + signals 0.0,5 ?

CastagnaIT commented 4 years ago

yes is needed the code of test 2 + patched addonSignals

risogolo commented 4 years ago

t2+signals005 how many iternations should I expect?

CastagnaIT commented 4 years ago

I'm more tired than you, i am taking hours to try resolve the situation... what type of disk you are using? ssd/mechanical hdd/sdcard standard or hispeed...? you have small ram? it is really weird that in 30 sec your device not have done the elaboration...

Temporary solution

~For all other users of this thread~ ~it would be appreciated to have an answer~ by updating with these (NF addon+addonSignal patched):

the fixed version of AddonSignals dependecy is coming out but there is no a fixed date of release, theoretically within about two weeks

risogolo commented 4 years ago

I'm more tired than you, i am taking hours to try resolve the situation... what type of disk you are using? ssd/mechanical hdd/sdcard standard or hispeed...? you have small ram? it is really weird that in 30 sec your device not have done the elaboration...

however if you want to give it one last try, now the timeout is set at 60seconds: plugin.video.netflix_1.6.1_20200709_t5_60timeout.zip

For all other users of this thread it would be appreciated to have an answer by updating with these (NF addon+addonSignal patched): plugin.video.netflix_1.6.1_20200709_t5_30timeout.zip script.module.addon.signals-0.0.5_patched.zip

No worries, this is open source and Im very thankful for the job youre doing, very appreciate your willingnes to help, Im using sdcard in RPI4, 2GB RAM, I will try shortly latest build

stevenhoving commented 4 years ago

@CastagnaIT did you consider this?

    def waitForReturn(self):
        monitor = xbmc.Monitor()
        if monitor.waitForAbort(self.timeout / 1000)
            if self.use_timeout_exception:
                unRegisterSlot(self.sourceID, self.signal)
                raise AddonSignalsTimeoutError()

        unRegisterSlot(self.sourceID, self.signal)
        return self._return

I did a small investigation on the kodi code and the python interface https://github.com/xbmc/xbmc/blob/master/xbmc/interfaces/legacy/Monitor.cpp#L35

The change is roughly based on this: https://github.com/xbmc/xbmc/blob/master/addons/service.xbmc.versioncheck/lib/common.py#L184

risogolo commented 4 years ago

seems like t5_30 works for me, strange thing is that when I tried immediately, loading of "folders" was too slow, after reboot its much faster, why?