From b92ca15aca13f629d222786c185ffc33f924c166 Mon Sep 17 00:00:00 2001 From: alt-odoo Date: Thu, 26 Aug 2021 15:28:21 +0000 Subject: [PATCH] [FIX] microsoft_calendar: avoid deadlock at token refresh We should rollback manually first to avoid concurrent access errors/deadlocks when trying to refresh microsoft calendar token. opw-2630601 closes odoo/odoo#77955 X-original-commit: 5cd27e3440efae06bee6a96aee39f4d2c509ede7 Signed-off-by: Arnaud Joset Signed-off-by: Alex Tuyls --- addons/microsoft_calendar/models/res_users.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/microsoft_calendar/models/res_users.py b/addons/microsoft_calendar/models/res_users.py index d00125cb2ef..50a0473a45a 100644 --- a/addons/microsoft_calendar/models/res_users.py +++ b/addons/microsoft_calendar/models/res_users.py @@ -66,13 +66,14 @@ class User(models.Model): 'microsoft_calendar_token_validity': fields.Datetime.now() + timedelta(seconds=ttl), }) except requests.HTTPError as error: - if error.response.status_code in (400, 401): # invalid grant + if error.response.status_code in (400, 401): # invalid grant or invalid client # Delete refresh token and make sure it's commited self.env.cr.rollback() self.write({ 'microsoft_calendar_rtoken': False, 'microsoft_calendar_token': False, 'microsoft_calendar_token_validity': False, + 'microsoft_calendar_sync_token': False, }) self.env.cr.commit() error_key = error.response.json().get("error", "nc")