diff options
Diffstat (limited to 'src/mailman/rest/users.py')
| -rw-r--r-- | src/mailman/rest/users.py | 6 |
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) |
