From 6163e62da18767b65bbb524b7d351b38b373c8bf Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Fri, 18 Feb 2011 11:21:19 +1100 Subject: [PATCH] ctdb_req_dmaster from non-master If we find a situatior where we get a stray packet with the wrong dmaster, dont suicide with ctdb_fatal() since this is too disruptive. Just drop the stray packet and force a recovery to make sure all is good again. CQ S1022004 --- server/ctdb_call.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/ctdb_call.c b/server/ctdb_call.c index d6c08666..be6e8f93 100644 --- a/server/ctdb_call.c +++ b/server/ctdb_call.c @@ -369,7 +369,9 @@ void ctdb_request_dmaster(struct ctdb_context *ctdb, struct ctdb_req_header *hdr (unsigned long long)c->rsn, (unsigned long long)header.rsn, c->hdr.reqid, (key.dsize >= 4)?(*(uint32_t *)key.dptr):0)); if (header.rsn != 0 || header.dmaster != ctdb->pnn) { - ctdb_fatal(ctdb, "ctdb_req_dmaster from non-master"); + DEBUG(DEBUG_ERR,("ctdb_req_dmaster from non-master. Force a recovery.\n")); + + ctdb->recovery_mode = CTDB_RECOVERY_ACTIVE; return; } } -- 2.34.1