With ServerUpState.SERVING now the default, server_add() and server_start() wait for sd_notify readiness after CQL is already up. During that window the startup polling loop was calling get_cql_alternator_up_state() on every iteration (every 100ms). Each successful call recreated self.control_cluster and self.control_connection without closing the previous ones, leaking driver connections and adding unnecessary CQL load to a node that was already known to be queryable. Fix in two places: - Startup loop: skip the get_cql_alternator_up_state() call once server_up_state has reached CQL_ALTERNATOR_QUERIED. After that point only the cheap non-blocking check_serving_notification() is needed. - get_cql_up_state(): guard control_cluster/control_connection creation with `if self.control_connection is None` so the persistent driver connection is only established once, even if the function is called multiple times. Signed-off-by: Nadav Har'El <nyh@scylladb.com>
Scylla in-source tests.
For details on how to run the tests, see docs/dev/testing.md
Shared C++ utils, libraries are in lib/, for Python - pylib/
alternator - Python tests which connect to a single server and use the DynamoDB API unit, boost, raft - unit tests in C++ cqlpy - Python tests which connect to a single server and use CQL topology* - tests that set up clusters and add/remove nodes cql - approval tests that use CQL and pre-recorded output rest_api - tests for Scylla REST API Port 9000 scylla-gdb - tests for scylla-gdb.py helper script nodetool - tests for C++ implementation of nodetool
If you can use an existing folder, consider adding your test to it. New folders should be used for new large categories/subsystems, or when the test environment is significantly different from some existing suite, e.g. you plan to start scylladb with different configuration, and you intend to add many tests and would like them to reuse an existing Scylla cluster (clusters can be reused for tests within the same folder).
To add a new folder, create a new directory, and then
copy & edit its suite.ini.