diff --git a/ydb/connection.py b/ydb/connection.py index 8e65cd3b..d5b6ed50 100644 --- a/ydb/connection.py +++ b/ydb/connection.py @@ -26,6 +26,7 @@ YDB_REQUEST_TYPE_HEADER = "x-ydb-request-type" _DEFAULT_MAX_GRPC_MESSAGE_SIZE = 64 * 10**6 +_DEFAULT_KEEPALIVE_TIMEOUT = 10000 def _message_to_string(message): @@ -185,15 +186,18 @@ def _construct_channel_options(driver_config, endpoint_options=None): getattr(driver_config, "grpc_lb_policy_name", "round_robin"), ), ] - if driver_config.grpc_keep_alive_timeout is not None: - _default_connect_options.extend( - [ - ("grpc.keepalive_time_ms", driver_config.grpc_keep_alive_timeout >> 3), - ("grpc.keepalive_timeout_ms", driver_config.grpc_keep_alive_timeout), - ("grpc.http2.max_pings_without_data", 0), - ("grpc.keepalive_permit_without_calls", 0), - ] - ) + if driver_config.grpc_keep_alive_timeout is None: + driver_config.grpc_keep_alive_timeout = _DEFAULT_KEEPALIVE_TIMEOUT + + _default_connect_options.extend( + [ + ("grpc.keepalive_time_ms", driver_config.grpc_keep_alive_timeout >> 3), + ("grpc.keepalive_timeout_ms", driver_config.grpc_keep_alive_timeout), + ("grpc.http2.max_pings_without_data", 0), + ("grpc.keepalive_permit_without_calls", 0), + ] + ) + if endpoint_options is not None: if endpoint_options.ssl_target_name_override: _default_connect_options.append(