changedetection.io: RaspberryPi/arm - Edit page causes 500 error - glibc mismatch with jq

Describe the bug

When clicking “edit” on the home screen to edit a specific change detection watch an internal server error (500) is shown.

Version 0.45.5

Self-hosted on Raspberry Pi 4 as a container

To Reproduce

Steps to reproduce the behavior:

  1. Create a watch
  2. Edit the watch

Expected behavior

Open the edit page for the watch

Additional context

Logs:

changedetection-app-1  | ERROR:changedetectionio:Exception on /edit/ec87affe-4945-4451-9be1-207e070e6d21 [GET]
changedetection-app-1  | Traceback (most recent call last):
changedetection-app-1  |   File "/usr/local/flask/app.py", line 2073, in wsgi_app
changedetection-app-1  |     response = self.full_dispatch_request()
changedetection-app-1  |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
changedetection-app-1  |   File "/usr/local/flask/app.py", line 1519, in full_dispatch_request
changedetection-app-1  |     rv = self.handle_user_exception(e)
changedetection-app-1  |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
changedetection-app-1  |   File "/usr/local/flask_restful/__init__.py", line 298, in error_router
changedetection-app-1  |     return original_handler(e)
changedetection-app-1  |            ^^^^^^^^^^^^^^^^^^^
changedetection-app-1  |   File "/usr/local/flask/app.py", line 1517, in full_dispatch_request
changedetection-app-1  |     rv = self.dispatch_request()
changedetection-app-1  |          ^^^^^^^^^^^^^^^^^^^^^^^
changedetection-app-1  |   File "/usr/local/flask/app.py", line 1503, in dispatch_request
changedetection-app-1  |     return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
changedetection-app-1  |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
changedetection-app-1  |   File "/app/changedetectionio/__init__.py", line 208, in decorated_view
changedetection-app-1  |     return func(*args, **kwargs)
changedetection-app-1  |            ^^^^^^^^^^^^^^^^^^^^^
changedetection-app-1  |   File "/app/changedetectionio/__init__.py", line 705, in edit_page
changedetection-app-1  |     import jq
changedetection-app-1  | ImportError: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.35' not found (required by /usr/local/jq.cpython-311-arm-linux-gnueabihf.so)
changedetection-app-1  | 192.168.1.203,172.23.0.3 - - [30/Oct/2023 16:23:52] "GET /edit/ec87affe-4945-4451-9be1-207e070e6d21 HTTP/1.1" 500 449 0.019137

Happens on import of jq:

>>> import jq
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.35' not found (required by /usr/local/jq.cpython-311-arm-linux-gnueabihf.so)

Potential solution:

With the -bookworm variant of the Python image the correct glibc version is used and importing jq works without problems.

About this issue

  • Original URL
  • State: closed
  • Created 8 months ago
  • Reactions: 1
  • Comments: 15 (10 by maintainers)

Most upvoted comments

I can confirm that dgtlmoon/changedetection.io:dev works on Raspberry Pi. Thanks again!

docker build https://github.com/dgtlmoon/changedetection.io.git#1917-glibc-mistmatch-arm-upgrade-bookworm -t test-changedetectionio

https://stackoverflow.com/a/48197239/20307768

that is truly amazing! cool!

docker build https://github.com/dgtlmoon/changedetection.io.git#1917-glibc-mistmatch-arm-upgrade-bookworm -t test-changedetectionio

https://stackoverflow.com/a/48197239/20307768