Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: support config.enforce_ro(true|false)
* This method is needed for autofailover mechanisms mainly to enforce read_only=true during loading phase of tarantool. Before this patch race condition existed between autofailover and moonlibs/config recovering behaviour. If master crashes but fastly restartes then it initiates long running loading phase. Master recovers as read_only=true but after returning from box.cfg moonlibs/config retrieves config from ETCD and rechecks read_only option. This lead to situation when autofailover may change ETCD configuration when master is about to leave loading phase but autofailover already confirmed that master is "loading". Having method config.enforce_ro it is now possible for external autofailover to firstly enforce_ro of loading master and then change ETCD configuration and promote other candidate fixing races and stabilizes FSM
- Loading branch information