bug in replicaset master switchover
Пока до конца не понял почему так, но в итоге получается примерно так:
- i1 спит, i2 меняет мастера репликасета
- i2 proc_update_instance target_replication_config_version != current_replication_config_version, значит бампать не надо
- i2 governor proc_replication -> ok, v_current = v_target
- i2 raft_main_loop update cas target_state = Online
- i2 governor v_current == v_target -> proc_replication не нужён
- i2 governor i1.current_state = Online
Job https://git.picodata.io/core/picodata/-/jobs/391081
Download job-391081.txt
Проблема
Проблема в том, что мы скипаем бамп версии если она уже бампнута на момент proc_update_instance. Это неправильно, т.к. проверять в этот момент версию смысла нет, потому что применяться изменения будут вообще в другой момент.
Решение
Бампать версию в _pico_replicaset и _pico_tier всегда.
Edited by Georgy Moshkin