This change modifies how Rspamd handles Redis script loading across multiple
servers to improve resilience during server failures and restarts.
Previously, the system required ALL Redis servers to successfully load a script
before considering it ready for use. This caused modules to get stuck in a waiting
state when any Redis server was down, reporting errors like:
"redis script is not ready, waiting it to be loaded"
even when most servers were operational.
Key changes:
- Replace is_all_servers_ready() with is_any_server_ready() to allow operation
when at least one server has successfully loaded the script
- Reset all servers to "unsent" status when NOSCRIPT errors are encountered to
properly handle server restarts
- Ensure script loading is retried appropriately on reconnection
This fix allows Rspamd to continue operating when some Redis servers are temporarily
unavailable and to recover gracefully when servers rejoin the pool.