Skip to content

Error during library upgrade (CCB) #1827

Closed
@fastlorenzo

Description

@fastlorenzo

Describe the bug
While trying to upgrade the CCB library from v4 to v5, I get a 500 error from the server.
A few moments later, I can see the following error in the logs of the backend:

ciso-assistant-backend-75bd85b99c-pmvnd backend [2025-04-10 15:20:31 +0000] [1] [CRITICAL] WORKER TIMEOUT (pid:122)
ciso-assistant-backend-75bd85b99c-pmvnd backend [2025-04-10 15:20:31 +0000] [122] [ERROR] Error handling request /api/loaded-libraries/35b3816b-0f0c-41ee-a967-89f450ff2288/update/
ciso-assistant-backend-75bd85b99c-pmvnd backend Traceback (most recent call last):
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/models/fields/related_descriptors.py", line 239, in __get__
ciso-assistant-backend-75bd85b99c-pmvnd backend     rel_obj = self.field.get_cached_value(instance)
ciso-assistant-backend-75bd85b99c-pmvnd backend               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/models/fields/mixins.py", line 37, in get_cached_value
ciso-assistant-backend-75bd85b99c-pmvnd backend     return instance._state.fields_cache[self.cache_name]
ciso-assistant-backend-75bd85b99c-pmvnd backend            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend KeyError: 'requirement'
ciso-assistant-backend-75bd85b99c-pmvnd backend
ciso-assistant-backend-75bd85b99c-pmvnd backend During handling of the above exception, another exception occurred:
ciso-assistant-backend-75bd85b99c-pmvnd backend
ciso-assistant-backend-75bd85b99c-pmvnd backend Traceback (most recent call last):
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/gunicorn/workers/sync.py", line 134, in handle
ciso-assistant-backend-75bd85b99c-pmvnd backend     self.handle_request(listener, req, client, addr)
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/gunicorn/workers/sync.py", line 177, in handle_request
ciso-assistant-backend-75bd85b99c-pmvnd backend     respiter = self.wsgi(environ, resp.start_response)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/wsgi.py", line 124, in __call__
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = self.get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 140, in get_response
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = self._middleware_chain(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/utils/deprecation.py", line 129, in __call__
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = response or self.get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/utils/deprecation.py", line 129, in __call__
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = response or self.get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/utils/deprecation.py", line 129, in __call__
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = response or self.get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/utils/deprecation.py", line 129, in __call__
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = response or self.get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/utils/deprecation.py", line 129, in __call__
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = response or self.get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/utils/deprecation.py", line 129, in __call__
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = response or self.get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/utils/deprecation.py", line 129, in __call__
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = response or self.get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/utils/deprecation.py", line 129, in __call__
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = response or self.get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                            ^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django_structlog/middlewares/request.py", line 73, in __call__
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = self.get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/auditlog/middleware.py", line 53, in __call__
ciso-assistant-backend-75bd85b99c-pmvnd backend     return self.get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend            ^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/allauth/account/middleware.py", line 36, in middleware
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = get_response(request)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 197, in _get_response
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = wrapped_callback(request, *callback_args, **callback_kwargs)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/views/decorators/csrf.py", line 65, in _view_wrapper
ciso-assistant-backend-75bd85b99c-pmvnd backend     return view_func(request, *args, **kwargs)
ciso-assistant-backend-75bd85b99c-pmvnd backend            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/rest_framework/viewsets.py", line 124, in view
ciso-assistant-backend-75bd85b99c-pmvnd backend     return self.dispatch(request, *args, **kwargs)
ciso-assistant-backend-75bd85b99c-pmvnd backend            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/rest_framework/views.py", line 506, in dispatch
ciso-assistant-backend-75bd85b99c-pmvnd backend     response = handler(request, *args, **kwargs)
ciso-assistant-backend-75bd85b99c-pmvnd backend                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/library/views.py", line 388, in _update
ciso-assistant-backend-75bd85b99c-pmvnd backend     error_msg = library.update()
ciso-assistant-backend-75bd85b99c-pmvnd backend                 ^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/usr/local/lib/python3.12/contextlib.py", line 81, in inner
ciso-assistant-backend-75bd85b99c-pmvnd backend     return func(*args, **kwds)
ciso-assistant-backend-75bd85b99c-pmvnd backend            ^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/core/models.py", line 698, in update
ciso-assistant-backend-75bd85b99c-pmvnd backend     return library_updater.update_library()
ciso-assistant-backend-75bd85b99c-pmvnd backend            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/core/models.py", line 601, in update_library
ciso-assistant-backend-75bd85b99c-pmvnd backend     ra.save()
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/core/models.py", line 3903, in save
ciso-assistant-backend-75bd85b99c-pmvnd backend     self.compliance_assessment.upsert_daily_metrics()
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/core/models.py", line 3073, in upsert_daily_metrics
ciso-assistant-backend-75bd85b99c-pmvnd backend     "progress_perc": self.progress,
ciso-assistant-backend-75bd85b99c-pmvnd backend                      ^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/core/models.py", line 3687, in progress
ciso-assistant-backend-75bd85b99c-pmvnd backend     self.get_requirement_assessments(include_non_assessable=False)
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/core/models.py", line 3245, in get_requirement_assessments
ciso-assistant-backend-75bd85b99c-pmvnd backend     if requirement.requirement.implementation_groups
ciso-assistant-backend-75bd85b99c-pmvnd backend        ^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/models/fields/related_descriptors.py", line 257, in __get__
ciso-assistant-backend-75bd85b99c-pmvnd backend     rel_obj = self.get_object(instance)
ciso-assistant-backend-75bd85b99c-pmvnd backend               ^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/models/fields/related_descriptors.py", line 220, in get_object
ciso-assistant-backend-75bd85b99c-pmvnd backend     return qs.get(self.field.get_reverse_related_filter(instance))
ciso-assistant-backend-75bd85b99c-pmvnd backend            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 645, in get
ciso-assistant-backend-75bd85b99c-pmvnd backend     num = len(clone)
ciso-assistant-backend-75bd85b99c-pmvnd backend           ^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 382, in __len__
ciso-assistant-backend-75bd85b99c-pmvnd backend     self._fetch_all()
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 1928, in _fetch_all
ciso-assistant-backend-75bd85b99c-pmvnd backend     self._result_cache = list(self._iterable_class(self))
ciso-assistant-backend-75bd85b99c-pmvnd backend                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/models/query.py", line 91, in __iter__
ciso-assistant-backend-75bd85b99c-pmvnd backend     results = compiler.execute_sql(
ciso-assistant-backend-75bd85b99c-pmvnd backend               ^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/models/sql/compiler.py", line 1574, in execute_sql
ciso-assistant-backend-75bd85b99c-pmvnd backend     cursor.execute(sql, params)
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/backends/utils.py", line 79, in execute
ciso-assistant-backend-75bd85b99c-pmvnd backend     return self._execute_with_wrappers(
ciso-assistant-backend-75bd85b99c-pmvnd backend            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/backends/utils.py", line 92, in _execute_with_wrappers
ciso-assistant-backend-75bd85b99c-pmvnd backend     return executor(sql, params, many, context)
ciso-assistant-backend-75bd85b99c-pmvnd backend            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/backends/utils.py", line 105, in _execute
ciso-assistant-backend-75bd85b99c-pmvnd backend     return self.cursor.execute(sql, params)
ciso-assistant-backend-75bd85b99c-pmvnd backend            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py", line 354, in execute
ciso-assistant-backend-75bd85b99c-pmvnd backend     return super().execute(query, params)
ciso-assistant-backend-75bd85b99c-pmvnd backend            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ciso-assistant-backend-75bd85b99c-pmvnd backend   File "/code/.venv/lib/python3.12/site-packages/gunicorn/workers/base.py", line 204, in handle_abort
ciso-assistant-backend-75bd85b99c-pmvnd backend     sys.exit(1)
ciso-assistant-backend-75bd85b99c-pmvnd backend SystemExit: 1
ciso-assistant-backend-75bd85b99c-pmvnd backend [2025-04-10 15:20:31 +0000] [122] [INFO] Worker exiting (pid: 122)
ciso-assistant-backend-75bd85b99c-pmvnd backend [2025-04-10 15:20:32 +0000] [318] [INFO] Booting worker with pid: 318

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Loaded libraries'
  2. Click on 'Upgrade' for library 'CCB CyberFundamentals Framework'
  3. See error

Expected behavior
The library is updated

Screenshots

Image

Environment (please complete the following information):

  • Device: All
  • OS: All
  • Browser: All
  • Version: v2.3.6

Additional context
N/A

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions