summaryrefslogtreecommitdiff
path: root/src/mailman/rest/users.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mailman/rest/users.py')
-rw-r--r--src/mailman/rest/users.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mailman/rest/users.py b/src/mailman/rest/users.py
index 6856798d2..018c8441d 100644
--- a/src/mailman/rest/users.py
+++ b/src/mailman/rest/users.py
@@ -192,7 +192,11 @@ class AUser(_UserBase):
for member in self._user.memberships.members:
member.unsubscribe()
user_manager = getUtility(IUserManager)
- for address in self._user.addresses:
+ # SQLAlchemy is susceptable to delete-elements-while-iterating bugs so
+ # first figure out all the addresses we want to delete, then in a
+ # separate pass, delete those addresses. (See LP: #1419519)
+ delete = list(self._user.addresses)
+ for address in delete:
user_manager.delete_address(address)
user_manager.delete_user(self._user)
no_content(response)