ctdb-readonly: Do not use hard-coded value for readonly revoke timeout
authorAmitay Isaacs <amitay@gmail.com>
Fri, 28 Mar 2014 02:44:34 +0000 (13:44 +1100)
committerAmitay Isaacs <amitay@samba.org>
Mon, 31 Mar 2014 05:20:48 +0000 (07:20 +0200)
In case of control timeouts, readonly revoke code currently aborts.  This
needs to be fixed.  Meanwhile, using control_timeout instead of 5 seconds,
increases the timeout to 60 seconds.

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
Autobuild-User(master): Amitay Isaacs <amitay@samba.org>
Autobuild-Date(master): Mon Mar 31 07:20:48 CEST 2014 on sn-devel-104

ctdb/server/ctdb_call.c

index 017bb81d99cea1ff170ea4d2a76b2b1191616974..1830b4a7c5b9b0f22ff76bb35dd88f3dcf75a434 100644 (file)
@@ -1513,7 +1513,7 @@ static void revoke_send_cb(struct ctdb_context *ctdb, uint32_t pnn, void *privat
        struct ctdb_revoke_state *revoke_state = private_data;
        struct ctdb_client_control_state *state;
 
-       state = ctdb_ctrl_updaterecord_send(ctdb, revoke_state, timeval_current_ofs(5,0), pnn, revoke_state->ctdb_db, revoke_state->key, revoke_state->header, revoke_state->data);
+       state = ctdb_ctrl_updaterecord_send(ctdb, revoke_state, timeval_current_ofs(ctdb->tunable.control_timeout,0), pnn, revoke_state->ctdb_db, revoke_state->key, revoke_state->header, revoke_state->data);
        if (state == NULL) {
                DEBUG(DEBUG_ERR,("Failure to send update record to revoke readonly delegation\n"));
                revoke_state->status = -1;
@@ -1548,7 +1548,7 @@ static int ctdb_revoke_all_delegations(struct ctdb_context *ctdb, struct ctdb_db
  
        ctdb_trackingdb_traverse(ctdb, tdata, revoke_send_cb, state);
 
-       event_add_timed(ctdb->ev, state, timeval_current_ofs(5, 0), ctdb_revoke_timeout_handler, state);
+       event_add_timed(ctdb->ev, state, timeval_current_ofs(ctdb->tunable.control_timeout, 0), ctdb_revoke_timeout_handler, state);
 
        while (state->finished == 0) {
                event_loop_once(ctdb->ev);