From 04b69b96d348e9313d6c4727719ea2c5f98cdc8b Mon Sep 17 00:00:00 2001 From: Adam Holmberg Date: Wed, 10 Jun 2015 11:18:50 -0500 Subject: [PATCH] Don't wait for schema agreement during startup. Fixes an issue where connect will stall when connecting to mixed version clusters. Should not affect model consistency since we are already registered for schema_change events. --- cassandra/cluster.py | 2 +- tests/integration/standard/test_cluster.py | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/cassandra/cluster.py b/cassandra/cluster.py index cb2502e7..3f72e774 100644 --- a/cassandra/cluster.py +++ b/cassandra/cluster.py @@ -2118,7 +2118,7 @@ class ControlConnection(object): peers_query, local_query, timeout=self._timeout) self._refresh_node_list_and_token_map(connection, preloaded_results=shared_results) - self._refresh_schema(connection, preloaded_results=shared_results) + self._refresh_schema(connection, preloaded_results=shared_results, schema_agreement_wait=-1) if not self._cluster.metadata.keyspaces: log.warning("[control connection] No schema built on connect; retrying without wait for schema agreement") self._refresh_schema(connection, preloaded_results=shared_results, schema_agreement_wait=0) diff --git a/tests/integration/standard/test_cluster.py b/tests/integration/standard/test_cluster.py index bf6bb1d4..f45a32ed 100644 --- a/tests/integration/standard/test_cluster.py +++ b/tests/integration/standard/test_cluster.py @@ -336,10 +336,7 @@ class ClusterTests(unittest.TestCase): # cluster agreement wait exceeded c = Cluster(protocol_version=PROTOCOL_VERSION, max_schema_agreement_wait=agreement_timeout) - start_time = time.time() - s = c.connect() - end_time = time.time() - self.assertGreaterEqual(end_time - start_time, agreement_timeout) + c.connect() self.assertTrue(c.metadata.keyspaces) # cluster agreement wait used for refresh