diff --git a/src/snowflake/connector/connection.py b/src/snowflake/connector/connection.py index 6b46249451..b64b345828 100644 --- a/src/snowflake/connector/connection.py +++ b/src/snowflake/connector/connection.py @@ -1135,7 +1135,8 @@ def close(self, retry: bool = True) -> None: # close telemetry first, since it needs rest to send remaining data logger.debug("closed") - self._telemetry.close(send_on_close=bool(retry and self.telemetry_enabled)) + if self.telemetry_enabled: + self._telemetry.close(retry=retry) if ( self._all_async_queries_finished() and not self._server_session_keep_alive diff --git a/src/snowflake/connector/telemetry.py b/src/snowflake/connector/telemetry.py index a22cbdfbb6..37edd3fd41 100644 --- a/src/snowflake/connector/telemetry.py +++ b/src/snowflake/connector/telemetry.py @@ -155,7 +155,7 @@ def try_add_log_to_batch(self, telemetry_data: TelemetryData) -> None: except Exception: logger.warning("Failed to add log to telemetry.", exc_info=True) - def send_batch(self) -> None: + def send_batch(self, retry: bool = False) -> None: if self.is_closed: raise Exception("Attempted to send batch when TelemetryClient is closed") elif not self._enabled: @@ -186,6 +186,7 @@ def send_batch(self) -> None: method="post", client=None, timeout=5, + _no_retry=not retry, ) if not ret["success"]: logger.info( @@ -204,11 +205,10 @@ def send_batch(self) -> None: def is_closed(self) -> bool: return self._rest is None - def close(self, send_on_close: bool = True) -> None: + def close(self, retry: bool = False) -> None: if not self.is_closed: logger.debug("Closing telemetry client.") - if send_on_close: - self.send_batch() + self.send_batch(retry=retry) self._rest = None def disable(self) -> None: