From fa3c81bd112a77b36a97c9758e71e61ea038d3d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20B=C3=BChler?= Date: Sun, 18 Jul 2010 21:45:19 +0200 Subject: [PATCH] [mod_memcached]: less log spam, fix another endless loop --- src/common/memcached.c | 13 +++++++++++-- src/modules/mod_memcached.c | 4 +++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/common/memcached.c b/src/common/memcached.c index 5709dbd..301c994 100644 --- a/src/common/memcached.c +++ b/src/common/memcached.c @@ -211,6 +211,8 @@ static void free_request(liMemcachedCon *con, int_request *req) { static void cancel_all_requests(liMemcachedCon *con) { int_request *req; GError *err1 = NULL, *err = NULL; + gboolean first = TRUE; + if (con->err) { err1 = g_error_copy(con->err); } else { @@ -224,8 +226,15 @@ static void cancel_all_requests(liMemcachedCon *con) { if (req->req.callback) req->req.callback(&req->req, LI_MEMCACHED_RESULT_ERROR, NULL, &err); - if (err1) err1->code = LI_MEMCACHED_DISABLED; /* "silent" fail */ - if (con->err) con->err->code = LI_MEMCACHED_DISABLED; /* "silent" fail */ + free_request(con, req); + + if (first) { + if (err) err->code = LI_MEMCACHED_DISABLED; /* "silent" fail */ + if (err1) err1->code = LI_MEMCACHED_DISABLED; /* "silent" fail */ + if (con->err) con->err->code = LI_MEMCACHED_DISABLED; /* "silent" fail */ + + first = FALSE; + } } if (NULL != err) g_clear_error(&err); diff --git a/src/modules/mod_memcached.c b/src/modules/mod_memcached.c index 896d69b..b8c508c 100644 --- a/src/modules/mod_memcached.c +++ b/src/modules/mod_memcached.c @@ -298,7 +298,9 @@ static void memcache_callback(liMemcachedRequest *request, liMemcachedResult res break; case LI_MEMCACHED_RESULT_ERROR: if (err && *err) { - VR_ERROR(vr, "memcached error: %s", (*err)->message); + if (LI_MEMCACHED_DISABLED != (*err)->code) { + VR_ERROR(vr, "memcached error: %s", (*err)->message); + } } else { VR_ERROR(vr, "memcached error: %s", "Unknown error"); }