From: Ronnie Sahlberg Date: Fri, 18 Feb 2011 00:21:19 +0000 (+1100) Subject: ctdb_req_dmaster from non-master X-Git-Url: http://git.samba.org/?p=sahlberg%2Fctdb.git;a=commitdiff_plain;h=6163e62da18767b65bbb524b7d351b38b373c8bf 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 --- 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; } }