]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Try and track down issue with redis cache driver
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Tue, 23 Feb 2021 16:37:27 +0000 (16:37 +0000)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Tue, 23 Feb 2021 16:37:42 +0000 (16:37 +0000)
src/lib/redis/cluster.c
src/lib/redis/redis.c

index e4f10a95594e16a674c25b2ef196e2f82d08f89a..8260fd16654530db66546cf6276d25d6e76ccf6a 100644 (file)
@@ -1719,6 +1719,7 @@ fr_redis_rcode_t fr_redis_cluster_state_init(fr_redis_cluster_state_t *state, fr
        fr_assert(conn);
 
        memset(state, 0, sizeof(*state));
+       *conn = NULL;   /* Better safe than exploding */
 
        used_nodes = rbtree_num_elements(cluster->used_nodes);
        if (used_nodes == 0) {
index e2b5d8723262f32166b8e34d5d4c690c8daff736..cfbff125064debfad6042049195d4431bdccfb30 100644 (file)
@@ -92,6 +92,11 @@ fr_redis_rcode_t fr_redis_command_status(fr_redis_conn_t *conn, redisReply *repl
                return REDIS_RCODE_SUCCESS;
 
        case REDIS_REPLY_ERROR:
+               /*
+                *      May indicate the connection handle is bad.
+                */
+               fr_assert_msg(reply->str, "Error response contained no error string");
+
                fr_strerror_printf("Server error: %s", reply->str);
                if (strncmp(REDIS_ERROR_MOVED_STR, reply->str, sizeof(REDIS_ERROR_MOVED_STR) - 1) == 0) {
                        return REDIS_RCODE_MOVE;