persistent_callback: ignore the update-recordreturn code of remote node in recovery
authorMichael Adam <obnox@samba.org>
Tue, 22 Feb 2011 21:24:50 +0000 (22:24 +0100)
committerMichael Adam <obnox@samba.org>
Thu, 24 Feb 2011 09:31:59 +0000 (10:31 +0100)
If a recovery was started, then all further processing of the update_record
controls sent by the trans3_commit control is disabled. The recovery should
trigger sending the reply for the update record control when finished.

server/ctdb_persistent.c

index f9a20510c989f40b1a2c432f827e97ae5443a331..3f297fa22f8bde1664b730335099f6b1e4d2d6ee 100644 (file)
@@ -53,6 +53,12 @@ static void ctdb_persistent_callback(struct ctdb_context *ctdb,
        struct ctdb_persistent_state *state = talloc_get_type(private_data, 
                                                              struct ctdb_persistent_state);
 
+       if (ctdb->recovery_mode != CTDB_RECOVERY_NORMAL) {
+               DEBUG(DEBUG_INFO, ("ctdb_persistent_callback: ignoring reply "
+                                  "during recovery\n"));
+               return;
+       }
+
        if (status != 0) {
                DEBUG(DEBUG_ERR,("ctdb_persistent_callback failed with status %d (%s)\n",
                         status, errormsg));