SynoCommunity / spksrc

Cross compilation framework to create native packages for the Synology's NAS
https://synocommunity.com
Other
3.03k stars 1.23k forks source link

sabnzbd not starting after upgrade sabnzbd to version 4.0.2-62 and Python to version 3.11.4-6 on my NAS DS212+ #5841

Closed MartinWingelaar closed 1 year ago

MartinWingelaar commented 1 year ago

Is this a new Bug?

Package Name

sabnzbd

Package Version

4.0.2-62

Device Model

DS212+

Device Architecture

ARMv5

Firmware Version

6.2.4-25556 Update 7

What happened?

After I installed the latest version of Sabnzbd 4.0.2-62 and Python 3.11.4-6 on my Synology NAS DS212+ sabnzbd is not starting. My NAS is running DSM 6.2.4-25556 Update 7

The message in the log says:

Sun Aug 6 16:40:24 CEST 2023
Starting sabnzbd command env LANG=en_US.UTF-8 /volume1/@appstore/sabnzbd/env/bin/python3 -OO /volume1/@appstore/sabnzbd/share/SABnzbd/SABnzbd .py -f /volume1/@appstore/sabnzbd/var/config.ini --pidfile /volume1/@appstore/sabnzbd/var/sabnzbd.pid -d
Traceback (most recent call last):
File "/volume1/@appstore/sabnzbd/share/SABnzbd/SABnzbd .py, line 38, in <module>
import ssl
File "/var/packages/python311/target/lib/python3.11/ssl .py", line 100, in <module>
import _ssl # if we can't import it, let the error propagate
^^^^^^^^^^^
ModuleNotFoundError: No module named '_ssl'

Reproduction steps

  1. Updated sabnzbd and Python 3.11
  2. Start Sabnzbc

Install Log

https://pastebin.com/cqLesaL7

Service Log

No response

Other Logs

No response

MartinWingelaar commented 1 year ago

I forgot to upload the service log:

Sun Aug  6 16:40:24 CEST 2023
Starting sabnzbd command env LANG=en_US.UTF-8 /volume1/@appstore/sabnzbd/env/bin/python3 -OO /volume1/@appstore/sabnzbd/share/SABnzbd/SABnzbd.py -f /volume1/@appstore/sabnzbd/var/config.ini --pidfile /volume1/@appstore/sabnzbd/var/sabnzbd.pid -d
Traceback (most recent call last):
  File "/volume1/@appstore/sabnzbd/share/SABnzbd/SABnzbd.py", line 38, in <module>
    import ssl
  File "/var/packages/python311/target/lib/python3.11/ssl.py", line 100, in <module>
    import _ssl             # if we can't import it, let the error propagate
    ^^^^^^^^^^^
ModuleNotFoundError: No module named '_ssl'
sabnzbd is not running
mreid-tt commented 1 year ago

hey @th0ma7, i recall you were doing some work with openssl in https://github.com/SynoCommunity/spksrc/pull/5818. would this error be related to it?

th0ma7 commented 1 year ago

Nope not related. This looks like the user as network issues somehow or that he is unable to resolve destination ssl certificate.

I would suggest uninstalling the reinstalling. If he does not want to loose his configs he could the manually download the package from our server then install manually over the existing.

mreid-tt commented 1 year ago

Are you sure of this? Look at this section of the log:

2023/08/06 13:38:23 WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
2023/08/06 13:38:27 WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/pip/

Wouldn't this suggest something missing in Python rather than a network issue? Should he uninstall and re-install Python 3.11?

th0ma7 commented 1 year ago

Good catch, indeed this looks new to me. Indeed providing python logs may help. Along with reinstalling python311. But something's fishy...

MartinWingelaar commented 1 year ago

Hi all, This is the python3.11 installation log python311.log

mreid-tt commented 1 year ago

The Python installation log seems to say about the same thing:

2023/08/06 12:58:43 Install packages from wheels [/volume1/@appstore/python311/share/wheelhouse/requirements.txt]
2023/08/06 13:04:22 WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

It may be that Python needs to be completely uninstalled and re-installed. @th0ma7 what do you think?

th0ma7 commented 1 year ago

Maybie... Or that there is a new pip version which introduces a new behavior. I'll have to try to reproduce on my end and maybe enforce using a fixed pip version instead .

tovenaartejo commented 1 year ago

I have the same problem, also with Python 3.11.4-7 version of today. I cannot see any loggings, just that the sabnzbd cannot start. Also on NAS 212

Safihre commented 1 year ago

@th0ma7 We are getting multiple reports of this. From the logging it seems clear that the _ssl.c module was not compiled on the DSM 6 toolchains, as on DSM 7 there seems to be no problems. Do we have any build logs available for the DSM 6 builds?

EDIT: To clarify, the _ssl.c module is part of cpython, so not related to SABnzbd but to the Python build.

mreid-tt commented 1 year ago

@th0ma7 Just to help set some context for this, I can confirm that on my DS916+ (Braswell arch, x64) with SABnzbd v4.0.3-64 and Python 3.11 v3.11.4-7 it works perfectly fine with the latest DSM 7. It could be a DSM 6 issue as suggested or perhaps an ARMv5 arch issue.

zaadstra commented 1 year ago

Same issue here, DS213+ (Qoriq) with DSM 6.2.4. Strange thing that I got this version upgrading from SAB v63 to v64. Yesterday that gave an error about not updating because of Python 311 (this was on board). Today a new Python 311 package was offered, installed it and then SABnzbd v64, which succeeded. Then got an error "cannot start package service".

Uninstalled v64, reinstalled, no luck. Then grabbed the v63 .spk and this works.

By the way I see a huge size difference between the v63 and v64 spk's.

Another note: I also run a DS218+, same Python 311 update and then SAB v64 update. Running fine. Python 3.11.4-7.

Safihre commented 1 year ago

@zaadstra could you get the logging through ssh? See if you get the same error.

th0ma7 commented 1 year ago

By the way I see a huge size difference between the v63 and v64 spk's.

@zaadstra This was expected as it now relies on python311 libraries instead of re-providing it's own.

Another note: I also run a DS218+, same Python 311 update and then SAB v64 update. Running fine. Python 3.11.4-7.

Can you be more specific? the update works well on your DS218+ (apollolake (x64)but fails on DS213+ (qoriq), right?

Also, are you hitting the same issue as @MartinWingelaar where you have the following in your installation logs (/var/log/packages/python311.log or /var/log/packages/sabnzbd.log)

2023/08/06 12:58:43 Install packages from wheels [/volume1/@appstore/python311/share/wheelhouse/requirements.txt]
2023/08/06 13:04:22 WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Safihre commented 1 year ago

@th0ma7 actually the new package (6.2MB) is bigger than the old (4.7MB) not smaller.

zaadstra commented 1 year ago

@th0ma7 @Safihre

Both DS213+ and DS218+ are running DSM 6.2.4 latest update.

Can you be more specific? the update works well on your DS218+ (apollolake (x64) but fails on DS213+ (qoriq), right?

Correct.

Actually the new package (6.2MB) is bigger than the old (4.7MB) not smaller.

Correct. For Qoriq v63 is 4610 KB and v64 is 6060 KB.

I uploaded the logs to pastebin, both for Python 3.11 and sabnzbd, for both NAS models:

python311.log ds218+ https://pastebin.com/WKFYnHv7

python311.log ds213+ https://pastebin.com/Lw5NGb1S

sabnzbd.log ds218+ https://pastebin.com/RhVYZm5N

2023/07/27 13:43:36 upgrade sabnzbd 4.0.2-62 -> 63 2023/08/14 13:22:27 upgrade sabnzbd 4.0.3-63 -> 64

sabnzbd.log ds213+ https://pastebin.com/uCqQFh04

2023/07/22 00:01:44 sabnzbd 4.0.2-62 -> 63 2023/08/14 13:25:52 sabnzbd 4.0.3-63 -> 64

(fails to start) 2023/08/14 13:35:38 start sabnzbd 4.0.3-64 Begin start-stop-status start /var/packages/sabnzbd/scripts/start-stop-status: line 31: 15558 Illegal instruction (core dumped) ${service} >> ${OUT} 2>&1 2023/08/14 13:36:05 start sabnzbd 4.0.3-64 End start-stop-status start ret=[1] 2023/08/14 13:36:06 (system) trigger sabnzbd 4.0.3-64 Begin start-stop-status stop 2023/08/14 13:36:06 (system) trigger sabnzbd 4.0.3-64 End start-stop-status stop ret=[0]

(reboot)

2023/08/14 13:55:26 start sabnzbd 4.0.3-64 Begin start-stop-status start /var/packages/sabnzbd/scripts/start-stop-status: line 31: 12265 Illegal instruction (core dumped) ${service} >> ${OUT} 2>&1 2023/08/14 13:55:56 start sabnzbd 4.0.3-64 End start-stop-status start ret=[1] 2023/08/14 13:55:57 (system) trigger sabnzbd 4.0.3-64 Begin start-stop-status stop 2023/08/14 13:55:57 (system) trigger sabnzbd 4.0.3-64 End start-stop-status stop ret=[0]

(uninstall) 2023/08/14 13:56:29 uninstall sabnzbd 4.0.3-64 Begin preuninst

(reinstall v64 from package service) 2023/08/14 13:57:46 install sabnzbd 4.0.3-64 Begin preinst

(uninstall) 2023/08/14 14:01:04 uninstall sabnzbd 4.0.3-64 End postuninst ret=[0]

(install v63 from .spk) 2023/08/14 14:02:33 install sabnzbd 4.0.3-63 Begin preinst

Hope this helps.

th0ma7 commented 1 year ago

@zaadstra this confirms my theory whereas your problem is different than the one encountered by @MartinWingelaar. Your pip calls are working out just fine, meaning you do have openssl working ok. The issue in your case really is the core dumped which I presume is due to cryptography wheel. I'll have to investigate a bit further.

Can you please open-up a different issue relatively to sabnzbd core dumped at startup on qoriq so we can track your issue from there? thnx.

zaadstra commented 1 year ago

Done, core dump goes to issue 5847.

th0ma7 commented 1 year ago

@MartinWingelaar Just returned from vacation and was able to find some time to further investigate. It hapens that ARMv5 can no longer be supported and a python 3.11 package update should not have been made available to your platform. The workaround for you is to revert to a previous version of Python 3.11 being version 3.11.4-6 (manually available at https://synocommunity.com/package/python311).

To manually downgrade you can follow this guide https://github.com/SynoCommunity/spksrc/wiki/Frequently-Asked-Questions#downgrade-a-package-without-uninstalling-advanced or simply uninstall and re-install the proper version (but will lose your local preferences).

In the meantime, I've removed the culprit package from our repository online to avoid other similar issues.

More information available at https://github.com/SynoCommunity/spksrc/pull/5820#issuecomment-1678221438

mreid-tt commented 9 months ago

@MartinWingelaar Just returned from vacation and was able to find some time to further investigate. It hapens that ARMv5 can no longer be supported and a python 3.11 package update should not have been made available to your platform. The workaround for you is to revert to a previous version of Python 3.11 being version 3.11.4-6 (manually available at https://synocommunity.com/package/python311).

@th0ma7, this version of Python v3.11.4-6 does not seem to be available online anymore. Having a similar issue reported by an ARMv5 user but using python310 (from Discord).

EDIT: Refer to #5990 for details.