Page MenuHomePhabricator

`/users/delete_data/` doesn't always delete data
Closed, DuplicatePublic

Description

While checking that another change didn't break this view, I found that it was already broken. I have not done any real investigation, but my guess would be that it's related to the impacted user account having deleted applications.

 1 Traceback (most recent call last):
 2   File "/venv/lib/python3.7/site-packages/django/core/handlers/exception.py", line 47, in inner
 3     response = get_response(request)
 4   File "/venv/lib/python3.7/site-packages/django/core/handlers/base.py", line 181, in _get_response
 5     response = wrapped_callback(request, *callback_args, **callback_kwargs)
 6   File "/venv/lib/python3.7/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
 7     return view_func(request, *args, **kwargs)
 8   File "/venv/lib/python3.7/site-packages/django/views/generic/base.py", line 70, in view
 9     return self.dispatch(request, *args, **kwargs)
10   File "/app/TWLight/view_mixins.py", line 151, in dispatch
11     return super(SelfOnly, self).dispatch(request, *args, **kwargs)
12   File "/venv/lib/python3.7/site-packages/django/views/generic/base.py", line 98, in dispatch
13     return handler(request, *args, **kwargs)
14   File "/app/TWLight/users/views.py", line 598, in post
15     return self.delete(request, *args, **kwargs)
16   File "/app/TWLight/users/views.py", line 556, in delete
17     user_app.save()
18   File "/venv/lib/python3.7/site-packages/reversion/revisions.py", line 324, in do_revision_context
19     return func(*args, **kwargs)
20   File "/app/TWLight/applications/models.py", line 175, in save
21     super(Application, self).save(*args, **kwargs)
22   File "/venv/lib/python3.7/site-packages/django/db/models/base.py", line 727, in save
23     force_update=force_update, update_fields=update_fields)
24   File "/venv/lib/python3.7/site-packages/django/db/models/base.py", line 752, in save_base
25     update_fields=update_fields,
26   File "/venv/lib/python3.7/site-packages/django/dispatch/dispatcher.py", line 182, in send
27     for receiver in self._live_receivers(sender)
28   File "/venv/lib/python3.7/site-packages/django/dispatch/dispatcher.py", line 182, in <listcomp>
29     for receiver in self._live_receivers(sender)
30   File "/app/TWLight/emails/tasks.py", line 416, in update_app_status_on_save
31     orig_app = Application.objects.get(pk=instance.id)
32   File "/venv/lib/python3.7/site-packages/django/db/models/manager.py", line 85, in manager_method
33     return getattr(self.get_queryset(), name)(*args, **kwargs)
34   File "/venv/lib/python3.7/site-packages/django/db/models/query.py", line 437, in get
35     self.model._meta.object_name
36   
37 Exception Type: DoesNotExist at /users/delete_data/<number>/
38 Exception Value: Application matching query does not exist.

Event Timeline

In this case the user account is found but not deleted. I would say they are both children of a not-yet-existent task for edge-case testing and cleanup of the delete data view.