IPv6 prefixes fail to display with IndexError error on 3.1.3 #5855

Closed
opened 2025-12-29 19:33:31 +01:00 by adam · 3 comments
Owner

Originally created by @bmhughes on GitHub (Dec 30, 2021).

Originally assigned to: @jeremystretch on GitHub.

NetBox version

v3.1.3

Python version

3.9

Steps to Reproduce

  1. Open a previously defined IPv6 prefix

Expected Behavior

Display the prefix data

Observed Behavior

IndexError at /ipam/prefixes/271/
range contains more than 9223372036854775807 (sys.maxint) IP addresses!Use the .size property instead.
Environment:


Request Method: GET
Request URL: http://netbox/ipam/prefixes/271/

Django Version: 3.2.10
Python Version: 3.9.7
Installed Applications:
['django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.humanize',
 'corsheaders',
 'debug_toolbar',
 'graphiql_debug_toolbar',
 'django_filters',
 'django_tables2',
 'django_prometheus',
 'graphene_django',
 'mptt',
 'rest_framework',
 'social_django',
 'taggit',
 'timezone_field',
 'circuits',
 'dcim',
 'ipam',
 'extras',
 'tenancy',
 'users',
 'utilities',
 'virtualization',
 'wireless',
 'django_rq',
 'drf_yasg',
 'django3_saml2_nbplugin.Django3AuthSAML2Plugin']
Installed Middleware:
['graphiql_debug_toolbar.middleware.DebugToolbarMiddleware',
 'django_prometheus.middleware.PrometheusBeforeMiddleware',
 'corsheaders.middleware.CorsMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware',
 'netbox.middleware.ExceptionHandlingMiddleware',
 'netbox.middleware.RemoteUserMiddleware',
 'netbox.middleware.LoginRequiredMiddleware',
 'netbox.middleware.DynamicConfigMiddleware',
 'netbox.middleware.APIVersionMiddleware',
 'netbox.middleware.ObjectChangeMiddleware',
 'django_prometheus.middleware.PrometheusAfterMiddleware']


Template error:
In template /opt/netbox/netbox/templates/base/base.html, error at line 0
   range contains more than 9223372036854775807 (sys.maxint) IP addresses!Use the .size property instead.
   1 : {# Base template for (almost) all NetBox pages #}
   2 : {% load static %}
   3 : {% load helpers %}
   4 : <!DOCTYPE html>
   5 : <html
   6 :   lang="en"
   7 :   data-netbox-url-name="{{ request.resolver_match.url_name }}"
   8 :   data-netbox-base-path="{{ settings.BASE_PATH }}"
   9 :   {% with preferences|get_key:'ui.colormode' as color_mode %}
   10 :     {% if color_mode == 'dark'%}


Traceback (most recent call last):
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "/opt/netbox/netbox/utilities/views.py", line 93, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/views/generic/base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "/opt/netbox/netbox/netbox/views/generic.py", line 70, in get
    return render(request, self.get_template_name(), {
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/shortcuts.py", line 19, in render
    content = loader.render_to_string(template_name, context, request, using=using)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader.py", line 62, in render_to_string
    return template.render(context, request)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/backends/django.py", line 61, in render
    return self.template.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 170, in render
    return self._render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render
    return self.nodelist.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 62, in render
    result = block.nodelist.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/defaulttags.py", line 516, in render
    return self.nodelist.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 988, in render
    output = self.filter_expression.resolve(context)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 698, in resolve
    new_obj = func(obj, *arg_vals)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/defaultfilters.py", line 565, in length
    return len(value)
  File "/opt/netbox/venv/lib64/python3.9/site-packages/netaddr/ip/sets.py", line 685, in __len__
    raise IndexError(

Exception Type: IndexError at /ipam/prefixes/271/
Exception Value: range contains more than 9223372036854775807 (sys.maxint) IP addresses!Use the .size property instead.
Originally created by @bmhughes on GitHub (Dec 30, 2021). Originally assigned to: @jeremystretch on GitHub. ### NetBox version v3.1.3 ### Python version 3.9 ### Steps to Reproduce 1. Open a previously defined IPv6 prefix ### Expected Behavior Display the prefix data ### Observed Behavior ``` IndexError at /ipam/prefixes/271/ range contains more than 9223372036854775807 (sys.maxint) IP addresses!Use the .size property instead. ``` ``` Environment: Request Method: GET Request URL: http://netbox/ipam/prefixes/271/ Django Version: 3.2.10 Python Version: 3.9.7 Installed Applications: ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'corsheaders', 'debug_toolbar', 'graphiql_debug_toolbar', 'django_filters', 'django_tables2', 'django_prometheus', 'graphene_django', 'mptt', 'rest_framework', 'social_django', 'taggit', 'timezone_field', 'circuits', 'dcim', 'ipam', 'extras', 'tenancy', 'users', 'utilities', 'virtualization', 'wireless', 'django_rq', 'drf_yasg', 'django3_saml2_nbplugin.Django3AuthSAML2Plugin'] Installed Middleware: ['graphiql_debug_toolbar.middleware.DebugToolbarMiddleware', 'django_prometheus.middleware.PrometheusBeforeMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'netbox.middleware.ExceptionHandlingMiddleware', 'netbox.middleware.RemoteUserMiddleware', 'netbox.middleware.LoginRequiredMiddleware', 'netbox.middleware.DynamicConfigMiddleware', 'netbox.middleware.APIVersionMiddleware', 'netbox.middleware.ObjectChangeMiddleware', 'django_prometheus.middleware.PrometheusAfterMiddleware'] Template error: In template /opt/netbox/netbox/templates/base/base.html, error at line 0 range contains more than 9223372036854775807 (sys.maxint) IP addresses!Use the .size property instead. 1 : {# Base template for (almost) all NetBox pages #} 2 : {% load static %} 3 : {% load helpers %} 4 : <!DOCTYPE html> 5 : <html 6 : lang="en" 7 : data-netbox-url-name="{{ request.resolver_match.url_name }}" 8 : data-netbox-base-path="{{ settings.BASE_PATH }}" 9 : {% with preferences|get_key:'ui.colormode' as color_mode %} 10 : {% if color_mode == 'dark'%} Traceback (most recent call last): File "/opt/netbox/venv/lib64/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/views/generic/base.py", line 70, in view return self.dispatch(request, *args, **kwargs) File "/opt/netbox/netbox/utilities/views.py", line 93, in dispatch return super().dispatch(request, *args, **kwargs) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/views/generic/base.py", line 98, in dispatch return handler(request, *args, **kwargs) File "/opt/netbox/netbox/netbox/views/generic.py", line 70, in get return render(request, self.get_template_name(), { File "/opt/netbox/venv/lib64/python3.9/site-packages/django/shortcuts.py", line 19, in render content = loader.render_to_string(template_name, context, request, using=using) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader.py", line 62, in render_to_string return template.render(context, request) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/backends/django.py", line 61, in render return self.template.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 170, in render return self._render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render return self.nodelist.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 150, in render return compiled_parent._render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render return self.nodelist.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 150, in render return compiled_parent._render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render return self.nodelist.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 150, in render return compiled_parent._render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render return self.nodelist.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 150, in render return compiled_parent._render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/test/utils.py", line 100, in instrumented_test_render return self.nodelist.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 62, in render result = block.nodelist.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 62, in render result = block.nodelist.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/loader_tags.py", line 62, in render result = block.nodelist.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/defaulttags.py", line 516, in render return self.nodelist.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 988, in render output = self.filter_expression.resolve(context) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/base.py", line 698, in resolve new_obj = func(obj, *arg_vals) File "/opt/netbox/venv/lib64/python3.9/site-packages/django/template/defaultfilters.py", line 565, in length return len(value) File "/opt/netbox/venv/lib64/python3.9/site-packages/netaddr/ip/sets.py", line 685, in __len__ raise IndexError( Exception Type: IndexError at /ipam/prefixes/271/ Exception Value: range contains more than 9223372036854775807 (sys.maxint) IP addresses!Use the .size property instead. ```
adam added the type: bugstatus: accepted labels 2025-12-29 19:33:31 +01:00
adam closed this issue 2025-12-29 19:33:31 +01:00
Author
Owner

@jeremystretch commented on GitHub (Dec 30, 2021):

Thank you for opening a bug report. Unfortunately, the information you have provided is not sufficient for someone else to attempt to reproduce the reported behavior. Remember, each bug report must include detailed steps that someone else can follow on a clean, empty NetBox installation to reproduce the exact problem you're experiencing. These instructions should include the creation of any involved objects, any configuration changes, and complete accounting of the actions being taken. Also be sure that your report does not reference data on the public NetBox demo, as that is subject to change at any time by an outside party and cannot be relied upon for bug reports.

@jeremystretch commented on GitHub (Dec 30, 2021): Thank you for opening a bug report. Unfortunately, the information you have provided is not sufficient for someone else to attempt to reproduce the reported behavior. Remember, each bug report must include detailed steps that someone else can follow on a clean, empty NetBox installation to reproduce the exact problem you're experiencing. These instructions should include the creation of any involved objects, any configuration changes, and complete accounting of the actions being taken. Also be sure that your report does not reference data on the public NetBox demo, as that is subject to change at any time by an outside party and cannot be relied upon for bug reports.
Author
Owner

@bmhughes commented on GitHub (Dec 30, 2021):

I'm not really sure what else I can provide here to give more detail, it's (for me at least) trivial to reproduce.

  1. Have a working v3.1.2 install.
  2. Upgrade it to v3.1.3.
  3. Unable to edit IPv6 prefixes due to the address length overflowing the max integer size.

I'd guess it's due to the new address overview panel but I've had to roll back to 3.1.2 so it's only a guess.

@bmhughes commented on GitHub (Dec 30, 2021): I'm not really sure what else I can provide here to give more detail, it's (for me at least) trivial to reproduce. 1. Have a working v3.1.2 install. 2. Upgrade it to v3.1.3. 3. Unable to edit IPv6 prefixes due to the address length overflowing the max integer size. I'd guess it's due to the new address overview panel but I've had to roll back to 3.1.2 so it's only a guess.
Author
Owner

@bluikko commented on GitHub (Dec 31, 2021):

Editing any sufficiently short IPv6 prefix say 2001:db8::/64 throws the error. A /126 does not have the error.

@bluikko commented on GitHub (Dec 31, 2021): Editing any sufficiently short IPv6 prefix say `2001:db8::/64` throws the error. A `/126` does not have the error.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#5855