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_dodb is set to $->{Replicate_Do_DB}(empty string) and
replicate_dodb ne $->{Replicate_Do_DB} is false
the second slave does not filter and current replicate_do_db is ""
replicate_dodb is set to $->{Replicate_Do_DB}(empty string) and
replicate_dodb ne $->{Replicate_Do_DB} is false
the third slave filters and current replicate_do_db is ""
replicate_dodb is set to $->{Replicate_Do_DB}(some db) and
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
andunless
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.