From e67bbf8bb85aed0e36d1de8f727f652954462639 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Thu, 9 Jan 2025 15:09:33 +0530 Subject: [PATCH] fix: Avoid indefinitely waiting for metadata locks --- frappe/migrate.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/frappe/migrate.py b/frappe/migrate.py index d5fa8254b8..5770ff340e 100644 --- a/frappe/migrate.py +++ b/frappe/migrate.py @@ -84,6 +84,7 @@ class SiteMigration: if os.path.exists(self.touched_tables_file): os.remove(self.touched_tables_file) + self.lower_lock_timeout() frappe.flags.in_migrate = True def tearDown(self): @@ -185,6 +186,13 @@ class SiteMigration: return are_services_running + def lower_lock_timeout(self): + """Lower timeout for table metadata locks, default is 1 day, reduce it to 5 minutes. + + This is required to avoid indefinitely waiting for metadata lock. + """ + frappe.db.sql("set session lock_wait_timeout = %s", 5 * 60) + def run(self, site: str): """Run Migrate operation on site specified. This method initializes and destroys connections to the site database.