mha4mysql-manager
mha4mysql-manager copied to clipboard
Fix masterha_check_repl
masterha_check_repl has not worked
when replication filters are given to only tailing servers,
like test cases added to tests/t/t_filter_incorrect.sh.
This is because perl evaluates the empty string as false and
unless block is executed despite another server has a configuration
to declare that it never filters.
For example, there are three slaves and
only last server has a filtering setting for replicate_do_db,
masterha_check_repl succeeds like the followings.
- the first slave does not filter and current replicate_do_db is undefined
- replicate_do_db is set to $_->{Replicate_Do_DB}(empty string) and
- replicate_do_db ne $_->{Replicate_Do_DB} is false
- the second slave does not filter and current replicate_do_db is ""
- replicate_do_db is set to $_->{Replicate_Do_DB}(empty string) and
- replicate_do_db ne $_->{Replicate_Do_DB} is false
- the third slave filters and current replicate_do_db is ""
- replicate_do_db is set to $_->{Replicate_Do_DB}(some db) and
- replicate_do_db ne $_->{Replicate_Do_DB} is false