Skip to content

redis-8.0.0 incompatibility #22370

@brechsteiner

Description

@brechsteiner

NetBox Edition

NetBox Community

NetBox Version

v4.6.2

Python Version

3.13

Steps to Reproduce

run /opt/netbox/upgrade.sh

Expected Behavior

Started netbox-rq.service - NetBox Request Queue Worker

Observed Behavior

Jun 03 08:44:05 netbox systemd[1]: Started netbox-rq.service - NetBox Request Queue Worker.
Jun 03 08:44:07 netbox python3[8132]: Traceback (most recent call last):
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/netbox/manage.py", line 10, in <module>
Jun 03 08:44:07 netbox python3[8132]:     execute_from_command_line(sys.argv)
Jun 03 08:44:07 netbox python3[8132]:     ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
Jun 03 08:44:07 netbox python3[8132]:     utility.execute()
Jun 03 08:44:07 netbox python3[8132]:     ~~~~~~~~~~~~~~~^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/django/core/management/__init__.py", line 437, in execute
Jun 03 08:44:07 netbox python3[8132]:     self.fetch_command(subcommand).run_from_argv(self.argv)
Jun 03 08:44:07 netbox python3[8132]:     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/django/core/management/base.py", line 420, in run_from_argv
Jun 03 08:44:07 netbox python3[8132]:     self.execute(*args, **cmd_options)
Jun 03 08:44:07 netbox python3[8132]:     ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/django/core/management/base.py", line 464, in execute
Jun 03 08:44:07 netbox python3[8132]:     output = self.handle(*args, **options)
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/netbox/core/management/commands/rqworker.py", line 38, in handle
Jun 03 08:44:07 netbox python3[8132]:     super().handle(*args, **options)
Jun 03 08:44:07 netbox python3[8132]:     ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/django_rq/management/commands/rqworker.py", line 100, in handle
Jun 03 08:44:07 netbox python3[8132]:     w = get_worker(*args, **worker_kwargs)
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/django_rq/workers.py", line 57, in get_worker
Jun 03 08:44:07 netbox python3[8132]:     return worker_class(
Jun 03 08:44:07 netbox python3[8132]:         queues,
Jun 03 08:44:07 netbox python3[8132]:     ...<4 lines>...
Jun 03 08:44:07 netbox python3[8132]:         **kwargs,
Jun 03 08:44:07 netbox python3[8132]:     )
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/rq/worker/base.py", line 238, in __init__
Jun 03 08:44:07 netbox python3[8132]:     self._set_ip_address(connection)
Jun 03 08:44:07 netbox python3[8132]:     ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/rq/worker/base.py", line 252, in _set_ip_address
Jun 03 08:44:07 netbox python3[8132]:     connection.client_setname(self.name)
Jun 03 08:44:07 netbox python3[8132]:     ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/redis/commands/core.py", line 1154, in client_setname
Jun 03 08:44:07 netbox python3[8132]:     return self.execute_command("CLIENT SETNAME", name, **kwargs)
Jun 03 08:44:07 netbox python3[8132]:            ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/redis/client.py", line 787, in execute_command
Jun 03 08:44:07 netbox python3[8132]:     return self._execute_command(*args, **options)
Jun 03 08:44:07 netbox python3[8132]:            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/redis/client.py", line 793, in _execute_command
Jun 03 08:44:07 netbox python3[8132]:     conn = self.connection or pool.get_connection()
Jun 03 08:44:07 netbox python3[8132]:                               ~~~~~~~~~~~~~~~~~~~^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/redis/utils.py", line 258, in wrapper
Jun 03 08:44:07 netbox python3[8132]:     return func(*args, **kwargs)
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 3139, in get_connection
Jun 03 08:44:07 netbox python3[8132]:     connection.connect()
Jun 03 08:44:07 netbox python3[8132]:     ~~~~~~~~~~~~~~~~~~^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 1006, in connect
Jun 03 08:44:07 netbox python3[8132]:     self.retry.call_with_retry(
Jun 03 08:44:07 netbox python3[8132]:     ~~~~~~~~~~~~~~~~~~~~~~~~~~^
Jun 03 08:44:07 netbox python3[8132]:         lambda: self.connect_check_health(
Jun 03 08:44:07 netbox python3[8132]:         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:     ...<2 lines>...
Jun 03 08:44:07 netbox python3[8132]:         lambda error: self.disconnect(error),
Jun 03 08:44:07 netbox python3[8132]:         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:     )
Jun 03 08:44:07 netbox python3[8132]:     ^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/redis/retry.py", line 120, in call_with_retry
Jun 03 08:44:07 netbox python3[8132]:     return do()
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 1007, in <lambda>
Jun 03 08:44:07 netbox python3[8132]:     lambda: self.connect_check_health(
Jun 03 08:44:07 netbox python3[8132]:             ~~~~~~~~~~~~~~~~~~~~~~~~~^
Jun 03 08:44:07 netbox python3[8132]:         check_health=True, retry_socket_connect=False
Jun 03 08:44:07 netbox python3[8132]:         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:     ),
Jun 03 08:44:07 netbox python3[8132]:     ^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 1061, in connect_check_health
Jun 03 08:44:07 netbox python3[8132]:     self.on_connect_check_health(check_health=check_health)
Jun 03 08:44:07 netbox python3[8132]:     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 1163, in on_connect_check_health
Jun 03 08:44:07 netbox python3[8132]:     self.activate_maint_notifications_handling_if_enabled(check_health=check_health)
Jun 03 08:44:07 netbox python3[8132]:     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 609, in activate_maint_notifications_handling_if_enabled
Jun 03 08:44:07 netbox python3[8132]:     self._enable_maintenance_notifications(
Jun 03 08:44:07 netbox python3[8132]:     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
Jun 03 08:44:07 netbox python3[8132]:         maint_notifications_config=self.maint_notifications_config,
Jun 03 08:44:07 netbox python3[8132]:         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:         check_health=check_health,
Jun 03 08:44:07 netbox python3[8132]:         ^^^^^^^^^^^^^^^^^^^^^^^^^^
Jun 03 08:44:07 netbox python3[8132]:     )
Jun 03 08:44:07 netbox python3[8132]:     ^
Jun 03 08:44:07 netbox python3[8132]:   File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 620, in _enable_maintenance_notifications
Jun 03 08:44:07 netbox python3[8132]:     raise ValueError(
Jun 03 08:44:07 netbox python3[8132]:     ...<2 lines>...
Jun 03 08:44:07 netbox python3[8132]:     )
Jun 03 08:44:07 netbox python3[8132]: ValueError: Cannot enable maintenance notifications for connection object that doesn't have a host attribute.

/opt/netbox/netbox/netbox/configuration.py

REDIS = {
    'tasks': {
        'URL': 'unix:///run/redis/redis-server.sock?db=0'
    },
    'caching': {
        'URL': 'unix:///run/redis/redis-server.sock?db=1'
    }
}

Workaround

source /opt/netbox/venv/bin/activate
pip install "redis<8"

Metadata

Metadata

Assignees

No one assigned

    Labels

    netboxstatus: duplicateThis issue has already been raisedtype: bugA confirmed report of unexpected behavior in the application

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions