commit 2ea40ec: [Minor] Improve logging for REDIS_REPLY_ERROR

Vsevolod Stakhov vsevolod at highsecure.ru
Wed Apr 21 11:42:04 UTC 2021


Author: Vsevolod Stakhov
Date: 2021-04-21 12:35:04 +0100
URL: https://github.com/rspamd/rspamd/commit/2ea40ec56af673b2aec231e7454a27e29fe39126 (HEAD -> master)

[Minor] Improve logging for REDIS_REPLY_ERROR

---
 src/libserver/fuzzy_backend/fuzzy_backend_redis.c | 20 ++++++++++++++++++++
 src/libstat/backends/redis_backend.c              | 22 +++++++++++++++++-----
 src/libstat/learn_cache/redis_cache.c             |  6 +++++-
 3 files changed, 42 insertions(+), 6 deletions(-)

diff --git a/src/libserver/fuzzy_backend/fuzzy_backend_redis.c b/src/libserver/fuzzy_backend/fuzzy_backend_redis.c
index d1e3e7532..f16040d8f 100644
--- a/src/libserver/fuzzy_backend/fuzzy_backend_redis.c
+++ b/src/libserver/fuzzy_backend/fuzzy_backend_redis.c
@@ -446,6 +446,10 @@ rspamd_fuzzy_redis_shingles_callback (redisAsyncContext *c, gpointer r,
 				}
 			}
 		}
+		else if (reply->type == REDIS_REPLY_ERROR) {
+			msg_err_redis_session ("fuzzy backend redis error: \"%s\"",
+					reply->str);
+		}
 
 		if (session->callback.cb_check) {
 			session->callback.cb_check (&rep, session->cbdata);
@@ -572,6 +576,10 @@ rspamd_fuzzy_redis_check_callback (redisAsyncContext *c, gpointer r,
 				}
 			}
 		}
+		else if (reply->type == REDIS_REPLY_ERROR) {
+			msg_err_redis_session ("fuzzy backend redis error: \"%s\"",
+					reply->str);
+		}
 
 		if (found_elts < 2) {
 			if (session->cmd->shingles_count > 0 && !session->shingles_checked) {
@@ -738,6 +746,10 @@ rspamd_fuzzy_redis_count_callback (redisAsyncContext *c, gpointer r,
 			}
 		}
 		else {
+			if (reply->type == REDIS_REPLY_ERROR) {
+				msg_err_redis_session ("fuzzy backend redis error: \"%s\"",
+						reply->str);
+			}
 			if (session->callback.cb_count) {
 				session->callback.cb_count (0, session->cbdata);
 			}
@@ -872,6 +884,10 @@ rspamd_fuzzy_redis_version_callback (redisAsyncContext *c, gpointer r,
 			}
 		}
 		else {
+			if (reply->type == REDIS_REPLY_ERROR) {
+				msg_err_redis_session ("fuzzy backend redis error: \"%s\"",
+						reply->str);
+			}
 			if (session->callback.cb_version) {
 				session->callback.cb_version (0, session->cbdata);
 			}
@@ -1373,6 +1389,10 @@ rspamd_fuzzy_redis_update_callback (redisAsyncContext *c, gpointer r,
 			}
 		}
 		else {
+			if (reply->type == REDIS_REPLY_ERROR) {
+				msg_err_redis_session ("fuzzy backend redis error: \"%s\"",
+						reply->str);
+			}
 			if (session->callback.cb_update) {
 				session->callback.cb_update (FALSE, 0, 0, 0, 0, session->cbdata);
 			}
diff --git a/src/libstat/backends/redis_backend.c b/src/libstat/backends/redis_backend.c
index 392f1704e..4136ab092 100644
--- a/src/libstat/backends/redis_backend.c
+++ b/src/libstat/backends/redis_backend.c
@@ -1212,8 +1212,14 @@ rspamd_redis_processed (redisAsyncContext *c, gpointer r, gpointer priv)
 				}
 			}
 			else {
-				msg_err_task_check ("got invalid reply from redis: %s, array expected",
-						rspamd_redis_type_to_string (reply->type));
+				if (reply->type == REDIS_REPLY_ERROR) {
+					msg_err_task_check ("cannot learn %s: redis error: \"%s\"",
+							rt->stcf->symbol, reply->str);
+				}
+				else {
+					msg_err_task_check ("got invalid reply from redis: %s, array expected",
+							rspamd_redis_type_to_string(reply->type));
+				}
 			}
 
 			msg_debug_stat_redis ("received tokens for %s: %d processed, %d found",
@@ -1264,9 +1270,15 @@ rspamd_redis_connected (redisAsyncContext *c, gpointer r, gpointer priv)
 			}
 			else {
 				if (reply->type != REDIS_REPLY_NIL) {
-					msg_err_task ("bad learned type for %s: %s, nil expected",
-						rt->stcf->symbol,
-						rspamd_redis_type_to_string (reply->type));
+					if (reply->type == REDIS_REPLY_ERROR) {
+						msg_err_task ("cannot learn %s: redis error: \"%s\"",
+								rt->stcf->symbol, reply->str);
+					}
+					else {
+						msg_err_task ("bad learned type for %s: %s, nil expected",
+								rt->stcf->symbol,
+								rspamd_redis_type_to_string(reply->type));
+					}
 				}
 
 				val = 0;
diff --git a/src/libstat/learn_cache/redis_cache.c b/src/libstat/learn_cache/redis_cache.c
index 73a72a614..570f3f6a2 100644
--- a/src/libstat/learn_cache/redis_cache.c
+++ b/src/libstat/learn_cache/redis_cache.c
@@ -141,7 +141,11 @@ rspamd_stat_cache_redis_get (redisAsyncContext *c, gpointer r, gpointer priv)
 				rspamd_strtol (reply->str, reply->len, &val);
 			}
 			else {
-				if (reply->type != REDIS_REPLY_NIL) {
+				if (reply->type == REDIS_REPLY_ERROR) {
+					msg_err_task ("cannot learn %s: redis error: \"%s\"",
+							rt->ctx->stcf->symbol, reply->str);
+				}
+				else if (reply->type != REDIS_REPLY_NIL) {
 					msg_err_task ("bad learned type for %s: %d",
 							rt->ctx->stcf->symbol, reply->type);
 				}


More information about the Commits mailing list