anchor.diff:          _ ->
               ?log_error("Config replication sync failed: ~p", [RepSyncRV])
       end,
  -    sync_replicas(),
       OldCopies0 = OldChain -- NewChain,
       OldCopies = [OldCopyNode || OldCopyNode <- OldCopies0,
                                   OldCopyNode =/= undefined],
  
positive.code:     %% if some destination replication is stopped, it means we'll soon
      %% replicate to it in single vbucket mover, so chain is not really
      %% broken.
      [kill_replica(S, D, VBucket) || {S, D} <- PairsToStop],
      sync_replicas().
  
  
  %% @private
  %% @doc Perform post-move replication fixup.
  update_replication_post_move(VBucket, OldChain, NewChain) ->
      %% destroy remainings of old replication chain
      [kill_replica(S, D, VBucket) || {S, D} <- pairs(OldChain),
                                      S =/= undefined,
                                      D =/= undefined,
                                      not lists:member(D, NewChain)],
      %% just start new chain of replications. Old chain is dead now
      [add_replica(S, D, VBucket) || {S, D} <- pairs(NewChain),
                                     true = if S =:= undefined -> D =:= undefined;
                                               true -> true
                                            end,
                                     S =/= undefined,
                                     D =/= undefined],
      ok.
  
  assert_master_mover() ->
      true = erlang:get('i_am_master_mover'),
  
negative.code: 
  %% We intentionally don't handle other exits so we'll die if one of
  %% the movers fails.
  handle_info({timeout, _, log_tap_stats}, State) ->
      rpc:eval_everywhere(diag_handler, log_all_tap_and_checkpoint_stats, []),
      misc:flush(log_tap_stats),
  