In adding new VLAN got RuntimeError "maximum recursion depth exceeded" #1422

Closed
opened 2025-12-29 16:32:06 +01:00 by adam · 11 comments
Owner

Originally created by @tdslot on GitHub (Nov 24, 2017).

Issue type

[ ] Feature request
[X ] Bug report
[ ] Documentation

Environment

  • Python version: 2.7.5
  • NetBox version: 2.2.6

Description

In adding new VLAN getting this error.

RuntimeError at /ipam/vlans/add/
maximum recursion depth exceeded

Request Method: | GET
-- | --
https://netbox.company.com/ipam/vlans/add/
1.11.7
RuntimeError
maximum recursion depth exceeded
/usr/lib/python2.7/site-packages/django/utils/encoding.py in force_text, line 78
/usr/bin/python
2.7.5
['/var/www/netbox.company.com/netbox',  '/var/www/netbox.company.com/netbox',  '/usr/bin',  '/usr/lib64/python27.zip',  '/usr/lib64/python2.7',  '/usr/lib64/python2.7/plat-linux2',  '/usr/lib64/python2.7/lib-tk',  '/usr/lib64/python2.7/lib-old',  '/usr/lib64/python2.7/lib-dynload',  '/usr/lib64/python2.7/site-packages',  '/usr/lib/python2.7/site-packages']
Fri, 24 Nov 2017 06:51:06 +0000

Can you help me? Maybe need some Django configuration or Linux system?

Thank you in advance.

Originally created by @tdslot on GitHub (Nov 24, 2017). ### Issue type [ ] Feature request [X ] Bug report [ ] Documentation ### Environment * Python version: 2.7.5 * NetBox version: 2.2.6 ### Description In adding new VLAN getting this error. ``` RuntimeError at /ipam/vlans/add/ maximum recursion depth exceeded Request Method: | GET -- | -- https://netbox.company.com/ipam/vlans/add/ 1.11.7 RuntimeError maximum recursion depth exceeded /usr/lib/python2.7/site-packages/django/utils/encoding.py in force_text, line 78 /usr/bin/python 2.7.5 ['/var/www/netbox.company.com/netbox', '/var/www/netbox.company.com/netbox', '/usr/bin', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages'] Fri, 24 Nov 2017 06:51:06 +0000 ``` Can you help me? Maybe need some Django configuration or Linux system? Thank you in advance.
adam closed this issue 2025-12-29 16:32:06 +01:00
Author
Owner

@jeremystretch commented on GitHub (Nov 27, 2017):

Please provide the exact steps needed to reproduce this issue. Also ensure that you are working with a completely stock, unmodified code base.

@jeremystretch commented on GitHub (Nov 27, 2017): Please provide the exact steps needed to reproduce this issue. Also ensure that you are working with a completely stock, unmodified code base.
Author
Owner

@tdslot commented on GitHub (Nov 27, 2017):

After upgrade 2.2.4 to 2.2.6 we can't create vlans. Just press add new vlan after some timeout we getting this error.
I found this https://stackoverflow.com/questions/8177073/python-maximum-recursion-depth-exceeded
but I'm not sure that is problem.
I'm not python expert.

@tdslot commented on GitHub (Nov 27, 2017): After upgrade 2.2.4 to 2.2.6 we can't create vlans. Just press add new vlan after some timeout we getting this error. I found this https://stackoverflow.com/questions/8177073/python-maximum-recursion-depth-exceeded but I'm not sure that is problem. I'm not python expert.
Author
Owner

@tdslot commented on GitHub (Nov 28, 2017):

Maybe I can increase this parameter in django some where?

@tdslot commented on GitHub (Nov 28, 2017): Maybe I can increase this parameter in django some where?
Author
Owner

@jeremystretch commented on GitHub (Nov 28, 2017):

I'm not able to reproduce this bug. Please post the full stack trace. (You may need to set DEBUG=True in configuration.py.)

@jeremystretch commented on GitHub (Nov 28, 2017): I'm not able to reproduce this bug. Please post the full stack trace. (You may need to set `DEBUG=True` in configuration.py.)
Author
Owner

@tdslot commented on GitHub (Nov 29, 2017):

Hi,

Here is Traceback:

Environment:

Request Method: GET
Request URL: https://netbox.company.com/ipam/vlans/add/

Django Version: 1.11.7
Python Version: 2.7.5
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',
 'django_filters',
 'django_tables2',
 'mptt',
 'rest_framework',
 'rest_framework_swagger',
 'circuits',
 'dcim',
 'ipam',
 'extras',
 'secrets',
 'tenancy',
 'users',
 'utilities',
 'virtualization')
Installed Middleware:
('debug_toolbar.middleware.DebugToolbarMiddleware',
 'corsheaders.middleware.CorsMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware',
 'utilities.middleware.ExceptionHandlingMiddleware',
 'utilities.middleware.LoginRequiredMiddleware',
 'utilities.middleware.APIVersionMiddleware')



Traceback:

File "/usr/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/lib/python2.7/site-packages/django/views/generic/base.py" in view
  68.             return self.dispatch(request, *args, **kwargs)

File "/usr/lib/python2.7/site-packages/django/contrib/auth/mixins.py" in dispatch
  92.         return super(PermissionRequiredMixin, self).dispatch(request, *args, **kwargs)

File "/usr/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch
  88.         return handler(request, *args, **kwargs)

File "/var/www/netbox.company.com/netbox/utilities/views.py" in get
  192.             'return_url': self.get_return_url(request, obj),

File "/usr/lib/python2.7/site-packages/django/shortcuts.py" in render
  30.     content = loader.render_to_string(template_name, context, request, using=using)

File "/usr/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
  68.     return template.render(context, request)

File "/usr/lib/python2.7/site-packages/django/template/backends/django.py" in render
  66.             return self.template.render(context)

File "/usr/lib/python2.7/site-packages/django/template/base.py" in render
  207.                     return self._render(context)

File "/usr/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render
  106.     template_rendered.send(sender=self, template=self, context=context)

File "/usr/lib/python2.7/site-packages/django/dispatch/dispatcher.py" in send
  193.             for receiver in self._live_receivers(sender)

File "/usr/lib/python2.7/site-packages/debug_toolbar/panels/templates/panel.py" in _store_template_info
  147.                         pformatted = force_text(pformat(temp_layer))

File "/usr/lib64/python2.7/pprint.py" in pformat
  63.     return PrettyPrinter(indent=indent, width=width, depth=depth).pformat(object)

File "/usr/lib64/python2.7/pprint.py" in pformat
  122.         self._format(object, sio, 0, 0, {}, 0)

File "/usr/lib64/python2.7/pprint.py" in _format
  140.         rep = self._repr(object, context, level - 1)

File "/usr/lib64/python2.7/pprint.py" in _repr
  233.                                                 self._depth, level)

File "/usr/lib64/python2.7/pprint.py" in format
  245.         return _safe_repr(object, context, maxlevels, level)

File "/usr/lib64/python2.7/pprint.py" in _safe_repr
  289.             vrepr, vreadable, vrecur = saferepr(v, context, maxlevels, level)

File "/usr/lib64/python2.7/pprint.py" in _safe_repr
  330.     rep = repr(object)

File "/usr/lib/python2.7/site-packages/django/db/models/base.py" in __repr__
  590.             u = six.text_type(self)

File "/var/www/netbox.company.com/netbox/ipam/models.py" in __str__
  545.         return self.display_name or super(VLAN, self).__str__()

File "/usr/lib/python2.7/site-packages/django/db/models/base.py" in __str__
  597.             return force_text(self).encode('utf-8')

File "/usr/lib/python2.7/site-packages/django/utils/encoding.py" in force_text
  78.                 s = six.text_type(s)

File "/var/www/netbox.company.com/netbox/ipam/models.py" in __str__
  545.         return self.display_name or super(VLAN, self).__str__()

File "/usr/lib/python2.7/site-packages/django/db/models/base.py" in __str__
  597.             return force_text(self).encode('utf-8')

File "/usr/lib/python2.7/site-packages/django/utils/encoding.py" in force_text
  78.                 s = six.text_type(s)

File "/var/www/netbox.company.com/netbox/ipam/models.py" in __str__
  545.         return self.display_name or super(VLAN, self).__str__()

File "/usr/lib/python2.7/site-packages/django/db/models/base.py" in __str__
  597.             return force_text(self).encode('utf-8')

File "/usr/lib/python2.7/site-packages/django/utils/encoding.py" in force_text
  78.                 s = six.text_type(s)

<-- edited for brevity -jstretch -->

Exception Type: RuntimeError at /ipam/vlans/add/
Exception Value: maximum recursion depth exceeded
@tdslot commented on GitHub (Nov 29, 2017): Hi, Here is Traceback: ``` Environment: Request Method: GET Request URL: https://netbox.company.com/ipam/vlans/add/ Django Version: 1.11.7 Python Version: 2.7.5 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', 'django_filters', 'django_tables2', 'mptt', 'rest_framework', 'rest_framework_swagger', 'circuits', 'dcim', 'ipam', 'extras', 'secrets', 'tenancy', 'users', 'utilities', 'virtualization') Installed Middleware: ('debug_toolbar.middleware.DebugToolbarMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', 'utilities.middleware.ExceptionHandlingMiddleware', 'utilities.middleware.LoginRequiredMiddleware', 'utilities.middleware.APIVersionMiddleware') Traceback: File "/usr/lib/python2.7/site-packages/django/core/handlers/exception.py" in inner 41. response = get_response(request) File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 187. response = self.process_exception_by_middleware(e, request) File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in _get_response 185. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python2.7/site-packages/django/views/generic/base.py" in view 68. return self.dispatch(request, *args, **kwargs) File "/usr/lib/python2.7/site-packages/django/contrib/auth/mixins.py" in dispatch 92. return super(PermissionRequiredMixin, self).dispatch(request, *args, **kwargs) File "/usr/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch 88. return handler(request, *args, **kwargs) File "/var/www/netbox.company.com/netbox/utilities/views.py" in get 192. 'return_url': self.get_return_url(request, obj), File "/usr/lib/python2.7/site-packages/django/shortcuts.py" in render 30. content = loader.render_to_string(template_name, context, request, using=using) File "/usr/lib/python2.7/site-packages/django/template/loader.py" in render_to_string 68. return template.render(context, request) File "/usr/lib/python2.7/site-packages/django/template/backends/django.py" in render 66. return self.template.render(context) File "/usr/lib/python2.7/site-packages/django/template/base.py" in render 207. return self._render(context) File "/usr/lib/python2.7/site-packages/django/test/utils.py" in instrumented_test_render 106. template_rendered.send(sender=self, template=self, context=context) File "/usr/lib/python2.7/site-packages/django/dispatch/dispatcher.py" in send 193. for receiver in self._live_receivers(sender) File "/usr/lib/python2.7/site-packages/debug_toolbar/panels/templates/panel.py" in _store_template_info 147. pformatted = force_text(pformat(temp_layer)) File "/usr/lib64/python2.7/pprint.py" in pformat 63. return PrettyPrinter(indent=indent, width=width, depth=depth).pformat(object) File "/usr/lib64/python2.7/pprint.py" in pformat 122. self._format(object, sio, 0, 0, {}, 0) File "/usr/lib64/python2.7/pprint.py" in _format 140. rep = self._repr(object, context, level - 1) File "/usr/lib64/python2.7/pprint.py" in _repr 233. self._depth, level) File "/usr/lib64/python2.7/pprint.py" in format 245. return _safe_repr(object, context, maxlevels, level) File "/usr/lib64/python2.7/pprint.py" in _safe_repr 289. vrepr, vreadable, vrecur = saferepr(v, context, maxlevels, level) File "/usr/lib64/python2.7/pprint.py" in _safe_repr 330. rep = repr(object) File "/usr/lib/python2.7/site-packages/django/db/models/base.py" in __repr__ 590. u = six.text_type(self) File "/var/www/netbox.company.com/netbox/ipam/models.py" in __str__ 545. return self.display_name or super(VLAN, self).__str__() File "/usr/lib/python2.7/site-packages/django/db/models/base.py" in __str__ 597. return force_text(self).encode('utf-8') File "/usr/lib/python2.7/site-packages/django/utils/encoding.py" in force_text 78. s = six.text_type(s) File "/var/www/netbox.company.com/netbox/ipam/models.py" in __str__ 545. return self.display_name or super(VLAN, self).__str__() File "/usr/lib/python2.7/site-packages/django/db/models/base.py" in __str__ 597. return force_text(self).encode('utf-8') File "/usr/lib/python2.7/site-packages/django/utils/encoding.py" in force_text 78. s = six.text_type(s) File "/var/www/netbox.company.com/netbox/ipam/models.py" in __str__ 545. return self.display_name or super(VLAN, self).__str__() File "/usr/lib/python2.7/site-packages/django/db/models/base.py" in __str__ 597. return force_text(self).encode('utf-8') File "/usr/lib/python2.7/site-packages/django/utils/encoding.py" in force_text 78. s = six.text_type(s) <-- edited for brevity -jstretch --> Exception Type: RuntimeError at /ipam/vlans/add/ Exception Value: maximum recursion depth exceeded ```
Author
Owner

@jeremystretch commented on GitHub (Nov 29, 2017):

@tdslot What steps are you taking to reproduce this issue?

@jeremystretch commented on GitHub (Nov 29, 2017): @tdslot What steps are you taking to reproduce this issue?
Author
Owner

@tdslot commented on GitHub (Nov 29, 2017):

@jeremystretch Just pressing "Add VLAN" and getting error. Maybe some problem is in database? Or python enviroment?

@tdslot commented on GitHub (Nov 29, 2017): @jeremystretch Just pressing "Add VLAN" and getting error. Maybe some problem is in database? Or python enviroment?
Author
Owner

@jeremystretch commented on GitHub (Nov 29, 2017):

No idea what would be causing it. What version of Django are you running? (You can check by running pip freeze | grep Django) It should be 1.11.

@jeremystretch commented on GitHub (Nov 29, 2017): No idea what would be causing it. What version of Django are you running? (You can check by running `pip freeze | grep Django`) It should be 1.11.
Author
Owner

@tdslot commented on GitHub (Nov 30, 2017):

Hi @jeremystretch ,

Here version: Django==1.11.7

By the way I already try couple times to upgrade same version to same version, I thoght maybe it will repair whats is miss configured or broken. Didn't help.

Tadas

@tdslot commented on GitHub (Nov 30, 2017): Hi @jeremystretch , Here version: ```Django==1.11.7``` By the way I already try couple times to upgrade same version to same version, I thoght maybe it will repair whats is miss configured or broken. Didn't help. Tadas
Author
Owner

@tdslot commented on GitHub (Nov 30, 2017):

Hi @jeremystretch ,

I just played with different values of:

import sys
sys.setrecursionlimit(1100)

And put this lines on top in file /var/www/netbox.company.com/gunicorn_config.py

And now work fine.

@tdslot commented on GitHub (Nov 30, 2017): Hi @jeremystretch , I just played with different values of: ``` import sys sys.setrecursionlimit(1100) ``` And put this lines on top in file ```/var/www/netbox.company.com/gunicorn_config.py``` And now work fine.
Author
Owner

@jeremystretch commented on GitHub (Nov 30, 2017):

Modifying the system recursion limit doesn't really fix this. But without being able to reproduce it I'm not sure what else to tell you. I'm going to close this out, but if anyone else happens across this issue please comment here and ask that it be reopened.

@jeremystretch commented on GitHub (Nov 30, 2017): Modifying the system recursion limit doesn't really fix this. But without being able to reproduce it I'm not sure what else to tell you. I'm going to close this out, but if anyone else happens across this issue please comment here and ask that it be reopened.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#1422