Alef-Burzmali / netbox-data-flows

NetBox plugin to document data flows between systems and applications.
https://pypi.org/project/netbox-data-flows/
Apache License 2.0
37 stars 7 forks source link

math domain error #7

Closed anubisg1 closed 1 year ago

anubisg1 commented 1 year ago

I'm not the user executing changes so i don't realy know the payload, but below are crashes i get notified abuut

Internal Server Error: /plugins/data-flows/aliases/14/edit/

ValueError at /plugins/data-flows/aliases/14/edit/ math domain error

Request Method: POST Request URL: https://netbox.cxxxx.com/plugins/data-flows/aliases/14/edit/?return_url=/plugins/data-flows/aliases/ Django Version: 4.1.6 Python Executable: /opt/netbox/venv/bin/python Python Version: 3.10.6 Python Path: ['/opt/netbox/netbox/', '/usr/lib/python310.zip', '/usr/lib/python3.10', '/usr/lib/python3.10/lib-dynload', '/opt/netbox/venv/lib/python3.10/site-packages'] Server time: Mon, 06 Feb 2023 08:14:42 +0000 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', 'netbox_bgp.BGPConfig', 'netbox_data_flows.DataFlowsConfig'] 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']

Traceback (most recent call last):
  File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
  File "/opt/netbox/venv/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/opt/netbox/venv/lib/python3.10/site-packages/django/views/generic/base.py", line 103, in view
    return self.dispatch(request, *args, **kwargs)
  File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 167, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/opt/netbox/netbox/netbox/views/generic/base.py", line 26, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/opt/netbox/netbox/utilities/views.py", line 99, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/opt/netbox/venv/lib/python3.10/site-packages/django/views/generic/base.py", line 142, in dispatch
    return handler(request, *args, **kwargs)
  File "/opt/netbox/netbox/netbox/views/generic/object_views.py", line 255, in post
    obj = form.save()
  File "/opt/netbox/venv/lib/python3.10/site-packages/django/forms/models.py", line 548, in save
    self.instance.save()
  File "/opt/netbox/venv/lib/python3.10/site-packages/netbox_data_flows/models/objectaliases.py", line 288, in save
    self.size = int(math.log2(size))

Exception Type: ValueError at /plugins/data-flows/aliases/14/edit/ Exception Value: math domain error Raised during: netbox_data_flows.views.objectaliases.ObjectAliasEditView Request information: USER: xxxx.xxxx@xxxx

GET: return_url = '/plugins/data-flows/aliases/'

POST: csrfmiddlewaretoken = 'xxxxxxxxxxx' name = 'Windows Servers - All - Production' description = '' _update = ''

Alef-Burzmali commented 1 year ago

Thanks, this should now be fixed. The aliases had a "size", which is not used since alpha 2, which could be computed as log(0) under certain circumstances

anubisg1 commented 1 year ago

Thank you for fixing this