mirror of
https://github.com/samba-team/samba.git
synced 2025-02-28 01:58:17 +03:00
ctdb-client: Increase the timeout for TRANS3_COMMIT control
On a busy system, TRANS3_COMMIT control can take upto or longer than 3 seconds. On timeout, there are few possible outcomes. 1. The transaction has completed on all nodes and TRANS3_COMMIT control has returned. In such a case, there is no problem. 2. The transaction has completed on the local node, but TRANS3_COMMIT control is still active. In such a case, ctdb_transaction_commit() can return successfully. If this is being called from ctdb, then ctdb will exit. This will cause ctdb daemon to trigger recovery since the client exited while transaction is active. This will cause unnecessary recovery. 3. Database recovery was started and ctdb_transaction_commit() will retry till the recovery completes the transaction. Increasing the timeout to 30 seconds will avoid the spurious database recoveries when TRANS3_COMMIT control takes longer to finish. Signed-off-by: Amitay Isaacs <amitay@gmail.com> Reviewed-by: Volker Lendecke <vl@samba.org> Autobuild-User(master): Volker Lendecke <vl@samba.org> Autobuild-Date(master): Fri Mar 11 19:59:53 CET 2016 on sn-devel-144
This commit is contained in:
parent
9341c02a89
commit
ad5b9c3df2
@ -4320,7 +4320,7 @@ int ctdb_transaction_commit(struct ctdb_transaction_handle *h)
|
||||
}
|
||||
|
||||
again:
|
||||
timeout = timeval_current_ofs(3,0);
|
||||
timeout = timeval_current_ofs(30,0);
|
||||
ret = ctdb_control(h->ctdb_db->ctdb, CTDB_CURRENT_NODE,
|
||||
h->ctdb_db->db_id,
|
||||
CTDB_CONTROL_TRANS3_COMMIT, 0,
|
||||
|
Loading…
x
Reference in New Issue
Block a user