diff --git a/daemon/redis.c b/daemon/redis.c index 747e30317..f6f431384 100644 --- a/daemon/redis.c +++ b/daemon/redis.c @@ -1396,21 +1396,18 @@ static void json_restore_call(struct redis *r, struct callmaster *m, const str * JsonParser *parser =0; rr_jsonStr = redis_get(r, REDIS_REPLY_STRING, "GET " PB, STR(callid)); - if (!rr_jsonStr) { - rlog(LOG_ERR, "Could not retrieve json data from redis for key: "STR_FORMAT, STR_FMT(callid)); + err = "could not retrieve JSON data from redis"; + if (!rr_jsonStr) goto err1; - } parser = json_parser_new(); - if (!json_parser_load_from_data (parser, rr_jsonStr->str, -1, NULL)) { - rlog(LOG_DEBUG, "Could not parse json data !"); + err = "could not parse JSON data"; + if (!json_parser_load_from_data (parser, rr_jsonStr->str, -1, NULL)) goto err1; - } root_reader = json_reader_new (json_parser_get_root (parser)); - if (!root_reader) { - rlog(LOG_DEBUG, "Could not read json data !"); + err = "could not read JSON data"; + if (!root_reader) goto err1; - } c = call_get_or_create(callid, m, type); err = "failed to create call struct"; @@ -1532,8 +1529,11 @@ err1: err); if (c) call_destroy(c); - else + else { + mutex_lock(&m->conf.redis_write->lock); redisCommandNR(m->conf.redis_write->ctx, "DEL " PB, STR(callid)); + mutex_unlock(&m->conf.redis_write->lock); + } } if (c) obj_put(c);