commit c2cdf7c: [Minor] Fix unregistration of the context and improve logging
Vsevolod Stakhov
vsevolod at highsecure.ru
Thu Sep 16 12:42:04 UTC 2021
Author: Vsevolod Stakhov
Date: 2021-09-16 13:38:35 +0100
URL: https://github.com/rspamd/rspamd/commit/c2cdf7ceb0b590645f992a62bbab4382a0319617 (HEAD -> master)
[Minor] Fix unregistration of the context and improve logging
---
src/libserver/redis_pool.cxx | 25 ++++++++++++++-----------
1 file changed, 14 insertions(+), 11 deletions(-)
diff --git a/src/libserver/redis_pool.cxx b/src/libserver/redis_pool.cxx
index 8cdb12587..e2deb5181 100644
--- a/src/libserver/redis_pool.cxx
+++ b/src/libserver/redis_pool.cxx
@@ -261,32 +261,35 @@ redis_pool_connection::~redis_pool_connection()
const auto *conn = this; /* For debug */
if (state == RSPAMD_REDIS_POOL_CONN_ACTIVE) {
- msg_debug_rpool ("active connection destructed");
+ msg_debug_rpool ("active connection destructed: %p", ctx);
if (ctx) {
+ pool->unregister_context(ctx);
+
if (!(ctx->c.flags & REDIS_FREEING)) {
auto *ac = ctx;
ctx = nullptr;
- pool->unregister_context(ac);
ac->onDisconnect = nullptr;
redisAsyncFree(ac);
}
}
}
else {
- msg_debug_rpool("inactive connection destructed");
+ msg_debug_rpool("inactive connection destructed: %p", ctx);
ev_timer_stop(pool->event_loop, &timeout);
+ if (ctx) {
+ pool->unregister_context(ctx);
- if (ctx && !(ctx->c.flags & REDIS_FREEING)) {
- redisAsyncContext *ac = ctx;
+ if (!(ctx->c.flags & REDIS_FREEING)) {
+ redisAsyncContext *ac = ctx;
- /* To prevent on_disconnect here */
- state = RSPAMD_REDIS_POOL_CONN_FINALISING;
- pool->unregister_context(ac);
- ctx = nullptr;
- ac->onDisconnect = nullptr;
- redisAsyncFree(ac);
+ /* To prevent on_disconnect here */
+ state = RSPAMD_REDIS_POOL_CONN_FINALISING;
+ ctx = nullptr;
+ ac->onDisconnect = nullptr;
+ redisAsyncFree(ac);
+ }
}
}
}
More information about the Commits
mailing list