After each upgrade we run the upgrade.sh, this will update the venv of netbox.
Removing expired user sessions (python3 netbox/manage.py clearsessions)...
Traceback (most recent call last):
File "/opt/netbox/netbox/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.13/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
~~~~~~~~~~~~~~~^^
File "/opt/netbox/venv/lib/python3.13/site-packages/django/core/management/__init__.py", line 437, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.13/site-packages/django/core/management/base.py", line 420, in run_from_argv
self.execute(*args, **cmd_options)
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.13/site-packages/django/core/management/base.py", line 464, in execute
output = self.handle(*args, **options)
File "/opt/netbox/venv/lib/python3.13/site-packages/django/contrib/sessions/management/commands/clearsessions.py", line 16, in handle
engine.SessionStore.clear_expired()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/opt/netbox/venv/lib/python3.13/site-packages/django/contrib/sessions/backends/db.py", line 192, in clear_expired
cls.get_model_class().objects.filter(expire_date__lt=timezone.now()).delete()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/opt/netbox/venv/lib/python3.13/site-packages/django/db/models/query.py", line 1238, in delete
num_deleted, num_deleted_per_model = collector.delete()
~~~~~~~~~~~~~~~~^^
File "/opt/netbox/venv/lib/python3.13/site-packages/django/db/models/deletion.py", line 462, in delete
signals.pre_delete.send(
~~~~~~~~~~~~~~~~~~~~~~~^
sender=model,
^^^^^^^^^^^^^
...<2 lines>...
origin=self.origin,
^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/netbox/venv/lib/python3.13/site-packages/django/dispatch/dispatcher.py", line 209, in send
response = receiver(signal=self, sender=sender, **named)
File "/opt/netbox/netbox/core/signals.py", line 173, in handle_deleted_object
validators = get_config_value_ci(get_config().PROTECTION_RULES, model_name, default=[])
~~~~~~~~~~^^
File "/opt/netbox/netbox/netbox/config/__init__.py", line 33, in get_config
_thread_locals.config = Config()
1 # Managed by salt-master.radebeul.lan
~~~~~~^^
File "/opt/netbox/netbox/netbox/config/__init__.py", line 53, in __init__
self._populate_from_cache()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/opt/netbox/netbox/netbox/config/__init__.py", line 78, in _populate_from_cache
cached_config = cache.get('config', _MISSING)
File "/opt/netbox/venv/lib/python3.13/site-packages/django_redis/cache.py", line 92, in get
value = self._get(key, default, version, client)
File "/opt/netbox/venv/lib/python3.13/site-packages/django_redis/cache.py", line 29, in _decorator
return method(self, *args, **kwargs)
File "/opt/netbox/venv/lib/python3.13/site-packages/django_redis/cache.py", line 99, in _get
return self.client.get(key, default=default, version=version, client=client)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.13/site-packages/django_redis/client/default.py", line 298, in get
value = client.get(key)
File "/opt/netbox/venv/lib/python3.13/site-packages/redis/commands/core.py", line 3194, in get
return self.execute_command("GET", name, keys=[name])
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.13/site-packages/redis/client.py", line 787, in execute_command
return self._execute_command(*args, **options)
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.13/site-packages/redis/client.py", line 793, in _execute_command
conn = self.connection or pool.get_connection()
~~~~~~~~~~~~~~~~~~~^^
File "/opt/netbox/venv/lib/python3.13/site-packages/redis/utils.py", line 258, in wrapper
return func(*args, **kwargs)
File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 3139, in get_connection
connection.connect()
~~~~~~~~~~~~~~~~~~^^
File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 1006, in connect
self.retry.call_with_retry(
~~~~~~~~~~~~~~~~~~~~~~~~~~^
lambda: self.connect_check_health(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<2 lines>...
lambda error: self.disconnect(error),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/netbox/venv/lib/python3.13/site-packages/redis/retry.py", line 120, in call_with_retry
return do()
File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 1007, in <lambda>
lambda: self.connect_check_health(
~~~~~~~~~~~~~~~~~~~~~~~~~^
check_health=True, retry_socket_connect=False
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
),
^
File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 1061, in connect_check_health
self.on_connect_check_health(check_health=check_health)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 1163, in on_connect_check_health
self.activate_maint_notifications_handling_if_enabled(check_health=check_health)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 609, in activate_maint_notifications_handling_if_enabled
self._enable_maintenance_notifications(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
maint_notifications_config=self.maint_notifications_config,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
check_health=check_health,
^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/opt/netbox/venv/lib/python3.13/site-packages/redis/connection.py", line 620, in _enable_maintenance_notifications
raise ValueError(
...<2 lines>...
)
ValueError: Cannot enable maintenance notifications for connection object that doesn't have a host attribute.
NetBox Edition
NetBox Community
NetBox Version
4.6.2
Python Version
3.13
Steps to Reproduce
After each upgrade we run the upgrade.sh, this will update the venv of netbox.
This installed redis-py 8.0 and afterwards the upgrade.sh failed with:
Were using a unix-socket for the redis connection - there is no "host" there!
Workaround: add
redis<8.0to your/opt/netbox/local_requirements.txtand re-run the upgrade.shExpected Behavior
No error should be reported
Observed Behavior
See ValueError above