Cable matching query does not exist when caching is enabled #5150

Closed
opened 2025-12-29 19:24:50 +01:00 by adam · 1 comment
Owner

Originally created by @qxrftz on GitHub (Aug 6, 2021).

NetBox version

v2.11.10

Python version

3.7

Steps to Reproduce

  1. enable cache
  2. connect the circuit with a interface
  3. disconnect it
  4. repeat step 2 with same interface before cahce timeout, then error occurs

Expected Behavior

no error

Observed Behavior

Request Method: POST
Request URL: http://1.1.1.1/circuits/circuit-terminations/1/connect/interface/?termination_b_site=2&return_url=/circuits/circuits/3/

Traceback (most recent call last):
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py", line 173, in __get__
    rel_obj = self.field.get_cached_value(instance)
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/db/models/fields/mixins.py", line 15, in get_cached_value
    return instance._state.fields_cache[cache_name]

During handling of the above exception ('cable'), another exception occurred:
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "/data/alvin/python/pyenv/versions/3.7.7/envs/netbox/netbox/netbox/dcim/views.py", line 2435, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/data/alvin/python/pyenv/versions/3.7.7/envs/netbox/netbox/netbox/netbox/views/generic.py", line 260, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/data/alvin/python/pyenv/versions/3.7.7/envs/netbox/netbox/netbox/utilities/views.py", line 94, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/views/generic/base.py", line 98, in dispatch
    return handler(request, *args, **kwargs)
  File "/data/alvin/python/pyenv/versions/3.7.7/envs/netbox/netbox/netbox/netbox/views/generic.py", line 286, in post
    if form.is_valid():
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/forms/forms.py", line 175, in is_valid
    return self.is_bound and not self.errors
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/forms/forms.py", line 170, in errors
    self.full_clean()
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/forms/forms.py", line 374, in full_clean
    self._post_clean()
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/forms/models.py", line 413, in _post_clean
    self.instance.full_clean(exclude=exclude, validate_unique=False)
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/db/models/base.py", line 1223, in full_clean
    self.clean()
  File "/data/alvin/python/pyenv/versions/3.7.7/envs/netbox/netbox/netbox/dcim/models/cables.py", line 260, in clean
    if self.termination_b.cable not in (None, self):
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py", line 187, in __get__
    rel_obj = self.get_object(instance)
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py", line 154, in get_object
    return qs.get(self.field.get_reverse_related_filter(instance))
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/cacheops/query.py", line 351, in get
    return qs._no_monkey.get(qs, *args, **kwargs)
  File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/db/models/query.py", line 437, in get
    self.model._meta.object_name

Exception Type: DoesNotExist at /circuits/circuit-terminations/1/connect/interface/
Exception Value: Cable matching query does not exist.
Originally created by @qxrftz on GitHub (Aug 6, 2021). ### NetBox version v2.11.10 ### Python version 3.7 ### Steps to Reproduce 1. **enable cache** 2. **connect the circuit with a interface** 3. **disconnect it** 4. **repeat step 2 with same interface before cahce timeout, then error occurs** ### Expected Behavior no error ### Observed Behavior ``` Request Method: POST Request URL: http://1.1.1.1/circuits/circuit-terminations/1/connect/interface/?termination_b_site=2&return_url=/circuits/circuits/3/ Traceback (most recent call last): File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py", line 173, in __get__ rel_obj = self.field.get_cached_value(instance) File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/db/models/fields/mixins.py", line 15, in get_cached_value return instance._state.fields_cache[cache_name] During handling of the above exception ('cable'), another exception occurred: File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/core/handlers/base.py", line 181, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/views/generic/base.py", line 70, in view return self.dispatch(request, *args, **kwargs) File "/data/alvin/python/pyenv/versions/3.7.7/envs/netbox/netbox/netbox/dcim/views.py", line 2435, in dispatch return super().dispatch(request, *args, **kwargs) File "/data/alvin/python/pyenv/versions/3.7.7/envs/netbox/netbox/netbox/netbox/views/generic.py", line 260, in dispatch return super().dispatch(request, *args, **kwargs) File "/data/alvin/python/pyenv/versions/3.7.7/envs/netbox/netbox/netbox/utilities/views.py", line 94, in dispatch return super().dispatch(request, *args, **kwargs) File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/views/generic/base.py", line 98, in dispatch return handler(request, *args, **kwargs) File "/data/alvin/python/pyenv/versions/3.7.7/envs/netbox/netbox/netbox/netbox/views/generic.py", line 286, in post if form.is_valid(): File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/forms/forms.py", line 175, in is_valid return self.is_bound and not self.errors File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/forms/forms.py", line 170, in errors self.full_clean() File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/forms/forms.py", line 374, in full_clean self._post_clean() File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/forms/models.py", line 413, in _post_clean self.instance.full_clean(exclude=exclude, validate_unique=False) File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/db/models/base.py", line 1223, in full_clean self.clean() File "/data/alvin/python/pyenv/versions/3.7.7/envs/netbox/netbox/netbox/dcim/models/cables.py", line 260, in clean if self.termination_b.cable not in (None, self): File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py", line 187, in __get__ rel_obj = self.get_object(instance) File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/db/models/fields/related_descriptors.py", line 154, in get_object return qs.get(self.field.get_reverse_related_filter(instance)) File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/cacheops/query.py", line 351, in get return qs._no_monkey.get(qs, *args, **kwargs) File "/data/alvin/python/pyenv/versions/netbox/lib/python3.7/site-packages/django/db/models/query.py", line 437, in get self.model._meta.object_name Exception Type: DoesNotExist at /circuits/circuit-terminations/1/connect/interface/ Exception Value: Cable matching query does not exist. ```
adam added the type: bugstatus: duplicate labels 2025-12-29 19:24:50 +01:00
adam closed this issue 2025-12-29 19:24:50 +01:00
Author
Owner

@jeremystretch commented on GitHub (Aug 6, 2021):

This has been reported several times. Please search the closed issues for similar reports. It can be fixed by disabling caching.

@jeremystretch commented on GitHub (Aug 6, 2021): This has been reported several times. Please search the closed issues for similar reports. It can be fixed by disabling caching.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#5150