Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information