From 05821690a4712997209dc91d80f7bfac699e37da Mon Sep 17 00:00:00 2001 From: Jothi Prakash Date: Fri, 31 Jan 2025 12:17:47 -0800 Subject: [PATCH 1/2] Updated the retry_logic --- src/databricks/sql/auth/retry.py | 2 +- src/databricks/sql/thrift_backend.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/databricks/sql/auth/retry.py b/src/databricks/sql/auth/retry.py index 0243d0aa2..12f02e576 100755 --- a/src/databricks/sql/auth/retry.py +++ b/src/databricks/sql/auth/retry.py @@ -290,7 +290,7 @@ def sleep_for_retry(self, response: BaseHTTPResponse) -> bool: else: proposed_wait = self.get_backoff_time() - proposed_wait = min(proposed_wait, self.delay_max) + proposed_wait = max(proposed_wait, self.delay_max) self.check_proposed_wait(proposed_wait) time.sleep(proposed_wait) return True diff --git a/src/databricks/sql/thrift_backend.py b/src/databricks/sql/thrift_backend.py index f76350a21..9beab0371 100644 --- a/src/databricks/sql/thrift_backend.py +++ b/src/databricks/sql/thrift_backend.py @@ -66,7 +66,7 @@ # - 900s attempts-duration lines up w ODBC/JDBC drivers (for cluster startup > 10 mins) _retry_policy = { # (type, default, min, max) "_retry_delay_min": (float, 1, 0.1, 60), - "_retry_delay_max": (float, 30, 5, 3600), + "_retry_delay_max": (float, 60, 5, 3600), "_retry_stop_after_attempts_count": (int, 30, 1, 60), "_retry_stop_after_attempts_duration": (float, 900, 1, 86400), "_retry_delay_default": (float, 5, 1, 60), From 2b20ab1047bebc01fa858bcdcf12527baad22f44 Mon Sep 17 00:00:00 2001 From: Jothi Prakash Date: Fri, 31 Jan 2025 13:18:08 -0800 Subject: [PATCH 2/2] Added logging for checking retry time --- src/databricks/sql/auth/retry.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/databricks/sql/auth/retry.py b/src/databricks/sql/auth/retry.py index 12f02e576..eedcc773f 100755 --- a/src/databricks/sql/auth/retry.py +++ b/src/databricks/sql/auth/retry.py @@ -292,6 +292,7 @@ def sleep_for_retry(self, response: BaseHTTPResponse) -> bool: proposed_wait = max(proposed_wait, self.delay_max) self.check_proposed_wait(proposed_wait) + logger.debug(f"Retrying after {proposed_wait} seconds") time.sleep(proposed_wait) return True