scylladb / python-driver

ScyllaDB Python Driver, originally DataStax Python Driver for Apache Cassandra
https://python-driver.docs.scylladb.com
Apache License 2.0
70 stars 42 forks source link

cluster: improve logging of peers row validation #305

Closed avelanarius closed 5 months ago

avelanarius commented 5 months ago

Before this change, when the driver received an invalid system.peers row it would log a very general warning:

Found an invalid row for peer (127.0.73.5). Ignoring host.

A system.peers row can be invalid for a multitude of reasons and that warning message did not describe the specific reason for the failure.

Improve the warning message by adding a specific reason why the row is considered invalid by the driver. The message now also includes the host_id or the entire row (in case the driver received a row without even the basic broadcast_rpc).

It might be a bit inelegant to introduce a side effect (logging) to the _is_valid_peer static method, however the alternative solution seemed even worse - adding that code to the already big _refresh_node_list_and_token_map.

Fixes #303