diff options
| author | Barry Warsaw | 2015-02-09 19:41:46 -0500 |
|---|---|---|
| committer | Barry Warsaw | 2015-02-09 19:41:46 -0500 |
| commit | 68c6596d7d280be39809f958a4ceac430e324cd6 (patch) | |
| tree | bf93dc8ee8dd70fbd35dd2fa893ff639b1413aee /src/mailman/rest/users.py | |
| parent | aac7d6421ba84d45c73de37dc2acde3175d716b8 (diff) | |
| download | mailman-68c6596d7d280be39809f958a4ceac430e324cd6.tar.gz mailman-68c6596d7d280be39809f958a4ceac430e324cd6.tar.zst mailman-68c6596d7d280be39809f958a4ceac430e324cd6.zip | |
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) |
