cabernetwork / cabernet

Cabernet allows control of IPTV streams. Plugins supports DaddyLive, Pluto TV, XUMO, M3U/XMLTV.XML files (SamsungTV, STIRR, DistroTV, Plex TV)
https://cabernetwork.github.io
MIT License
184 stars 25 forks source link

New exception in the log #69

Closed dcardin closed 1 year ago

dcardin commented 1 year ago

Latest version, 0.9.12.01

ERROR:web_admin UNEXPECTED EXCEPTION on GET='NoneType' object has no attribute 'instances' Traceback (most recent call last): File "/app/lib/clients/web_admin.py", line 105, in do_GET elif getrequest.call_url(self, self.content_path): File "/app/lib/common/decorators.py", line 310, in call_url self.url2func[_name](_webserver, *args, **kwargs) File "/app/lib/clients/channels/channels.py", line 42, in channels_m3u _webserver.do_mime_response(200, 'audio/x-mpegurl', get_channels_m3u( File "/app/lib/clients/channels/channels.py", line 91, in get_channels_m3u if not _plugins[sid_data['namespace']] \

rocky4546 commented 1 year ago

I think we are going to need a little more info. What we know is...

One possible suspect is that this occurred very early after the app was started. So, will need to know when in the sequence of starting that this happened. No other possibilities come to mind. If this is the case, I can make a change to fix it, but need to understand what caused it.

Another issue could be running a docker image within a Windows OS. Let me know if this is true... I assume this is a new issue...

rocky4546 commented 1 year ago

After a few tests, it does not look like an initial startup issue. It does somehow look like a Windows OS issue when the operating system from python is not a Windows OS. This is because Windows does not fork processes correctly, so python has something called pickling to address the shortcoming. BUT... pickling only happens when the OS is Windows. Is it possible to run python command from inside the docker and do the following?

import platform
platform.system()

Note: you can also go to Settings > Internal > Main and find OS Type. that is what Cabernet sees as the OS.

dcardin commented 1 year ago

Yes this is running on a linux machine, in a docker container. So the platform reported (python and web interface) is Linux (obviously) version: #39~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 17 21:16:15 UTC 2 Thanks!

rocky4546 commented 1 year ago

I run on Ubuntu 20. This looks like a case where Ubuntu did not start the processes correctly. The solution would be to restart the app. However, if you can indicate the steps needed to reproduce the error and have a debug log from time the app starts to when you send in the m3u request and it fails, that would be what is needed to resolve this issue. If indeed it is a 1 in a billion case that Ubuntu messed up and you cannot reproduce the error, then I will close this as non-discrepant and try a simple band-ade fix that won't really resolve the overall issue.

dcardin commented 1 year ago

I have restarted the container and it is working. I have changed the logging level to debug and will raise a new issue if I can provide more info. Thanks!

rocky4546 commented 1 year ago

Question. Did you delete a plugin and then run the channels.m3u? Although unable to repo the exact issue, I have found a few things associated with that. Fixing those issues and hoping that may help yours on next release.

dcardin commented 1 year ago

I might have. I had the tvhebdo epg plugin but I was only getting channel info, not an actual list of shows, so I removed it. Think that might have been a cause ?