Skip to content

Commit 24de1d5

Browse files
committed
control_connection: read actual metadata_request_timeout from Cluster.metadata_request_timeout
PR #361 that have introduced `metadata_request_timeout` intentionally pulled actual `metadata_request_timeout` from `control_connection_timeout`, because both `metadata_request_timeout` and `control_connection_timeout` has to be inline. Since this PR brings `Cluster.metadata_request_timeout` back, we need to pull it from `Cluster.metadata_request_timeout`
1 parent 48c7f40 commit 24de1d5

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

cassandra/cluster.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,7 +1214,7 @@ def __init__(self,
12141214
cloud=None,
12151215
scylla_cloud=None,
12161216
shard_aware_options=None,
1217-
metadata_request_timeout=None,
1217+
metadata_request_timeout: Optional[float] = None,
12181218
column_encryption_policy=None,
12191219
application_info:Optional[ApplicationInfoBase]=None
12201220
):
@@ -3622,9 +3622,11 @@ def _try_connect(self, host):
36223622
if connection.features.sharding_info is not None:
36233623
self._uses_peers_v2 = False
36243624

3625-
# Cassandra does not support "USING TIMEOUT"
3626-
self._metadata_request_timeout = None if connection.features.sharding_info is None \
3627-
else datetime.timedelta(seconds=self._cluster.control_connection_timeout)
3625+
# Only ScyllaDB supports "USING TIMEOUT"
3626+
# Sharding information signals it is ScyllaDB
3627+
self._metadata_request_timeout = None if connection.features.sharding_info is None or not self._cluster.metadata_request_timeout \
3628+
else datetime.timedelta(seconds=self._cluster.metadata_request_timeout)
3629+
36283630
self._tablets_routing_v1 = connection.features.tablets_routing_v1
36293631

36303632
# use weak references in both directions

0 commit comments

Comments
 (0)