-
Notifications
You must be signed in to change notification settings - Fork 2.9k
Description
NetBox Edition
NetBox Community
NetBox Version
4.4.3
Python Version
3.12
Steps to Reproduce
Install failure 4.4.3
Given
I have an automated installer that takes the source tarball, packages as .deb and .rpm, and installs on clean vms.
When
A new Netbox release is made, I download and package it, and deploy on a clean vm for initial testing. The build process is the same for each release. Only the source tarball is different. It's version number is used to target an "untar" directory - /opt/netbox-n.n.n in all cases.
Then
With version 4.4.3 on Debian (Ubuntu 24.04 LTS) I get an installation error that I do not get with 4.4.2.
Any ideas? Is this commit involved? 7719b98 @DanSheps ?
Expected Behavior
In the 4.4.2 upgrade.sh script install step, on a clean vm - Ubuntu 24.4.03 LTS - with no netbox history, I observe this:
...
Applying wireless.0012_alter_wirelesslan__location_and_more... OK
Applying wireless.0013_natural_ordering... OK
Applying wireless.0014_wirelesslangroup_comments... OK
Applying wireless.0015_extend_wireless_link_abs_distance_upper_limit... OK
Checking for missing cable paths (python3 netbox/manage.py trace_paths --no-input)...
Found no missing console port paths; skipping
Found no missing console server port paths; skipping
Found no missing interface paths; skipping
Found no missing power feed paths; skipping
Found no missing power outlet paths; skipping
Found no missing power port paths; skipping
Finished.
Building documentation (mkdocs build)...
INFO - Cleaning site directory
INFO - Building documentation to directory: /opt/netbox-4.4.2/netbox/project-static/docs
INFO - Doc file 'development/models.md' contains a link '../features/customization.md#bookmarks', but the doc 'features/customization.md' does not
contain an anchor '#bookmarks'.
INFO - Documentation built in 6.54 seconds
Collecting static files (python3 netbox/manage.py collectstatic --no-input)...
512 static files copied to '/opt/netbox-4.4.2/netbox/static'.
Removing stale content types (python3 netbox/manage.py remove_stale_contenttypes --no-input)...
Rebuilding search cache (python3 netbox/manage.py reindex --lazy)...
Reindexing 89 models.
Indexing models
core.datasource... No objects found.
core.datafile... No objects found.
circuits.circuit... No objects found.
circuits.circuitgroup... No objects found.
circuits.circuittermination... No objects found.
circuits.circuittype... No objects found.
circuits.provider... No objects found.
...No issues, the install runs through to completion.
Observed Behavior
With version 4.4.3 packaged using the same build process, in the same 24.04.3 LTS clean vm (I reset to a clean-os snapshot every time I test the built .deb and .rpm installers), I get the following error messages when executing the remove_stale_contenttypes.py script from upgrade.sh.
...
Applying wireless.0012_alter_wirelesslan__location_and_more... OK
Applying wireless.0013_natural_ordering... OK
Applying wireless.0014_wirelesslangroup_comments... OK
Applying wireless.0015_extend_wireless_link_abs_distance_upper_limit... OK
Checking for missing cable paths (python3 netbox/manage.py trace_paths --no-input)...
Found no missing console port paths; skipping
Found no missing console server port paths; skipping
Found no missing interface paths; skipping
Found no missing power feed paths; skipping
Found no missing power outlet paths; skipping
Found no missing power port paths; skipping
Finished.
Building documentation (mkdocs build)...
INFO - Cleaning site directory
INFO - Building documentation to directory: /opt/netbox-4.4.3/netbox/project-static/docs
INFO - Doc file 'development/models.md' contains a link '../features/customization.md#bookmarks', but the doc 'features/customization.md' does not
contain an anchor '#bookmarks'.
INFO - Documentation built in 6.53 seconds
Collecting static files (python3 netbox/manage.py collectstatic --no-input)...
512 static files copied to '/opt/netbox-4.4.3/netbox/static'.
Removing stale content types (python3 netbox/manage.py remove_stale_contenttypes --no-input)...
No active configuration revision found - falling back to most recent
Traceback (most recent call last):
File "/opt/netbox-4.4.3/netbox/manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/core/management/__init__.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/core/management/base.py", line 416, in run_from_argv
self.execute(*args, **cmd_options)
File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/core/management/base.py", line 460, in execute
output = self.handle(*args, **options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/contrib/contenttypes/management/commands/remove_stale_contenttypes.py", line 102, in handle
ct.delete()
File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/db/models/base.py", line 1281, in delete
return collector.delete()
^^^^^^^^^^^^^^^^^^
File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/db/models/deletion.py", line 458, in delete
signals.pre_delete.send(
File "/opt/netbox-4.4.3/venv/lib/python3.12/site-packages/django/dispatch/dispatcher.py", line 189, in send
response = receiver(signal=self, sender=sender, **named)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox-4.4.3/netbox/extras/signals.py", line 152, in notify_object_changed
if not has_feature(instance, 'notifications'):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/netbox-4.4.3/netbox/netbox/models/features.py", line 684, in has_feature
return test_func(model)
^^^^^^^^^^^^^^^^
File "/opt/netbox-4.4.3/netbox/netbox/models/features.py", line 643, in <lambda>
register_model_feature('notifications', lambda model: issubclass(model, NotificationsMixin))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: issubclass() arg 1 must be a class
+ exit 1