anchor.diff:                                  %%                  _ -> missing
                                   %%              end};
                                   false ->
  -                                    [] = Zombies,
                                       {N, missing};
                                   X -> X
                               end
  
positive.code:     %% fast-forward map and is supposed to recover perfectly from this
      %% condition.
      [a, b] = do_sanify_chain("B", [{a, 0, active}, {b, 0, dead}],
                              [b, a], [a, b], 0, []),
  
      %% rebalance can be stopped after updating vbucket states but
      %% before vbucket map update
      [a, b] = do_sanify_chain("B", [{a, 0, active}, {b, 0, replica}],
                              [b, a], [a, b], 0, []),
      %% same stuff but prior to takeover
      [a, b] = do_sanify_chain("B", [{a, 0, dead}, {b, 0, pending}],
                               [a, b], [b, a], 0, []),
      %% lets test more usual case too
      [c, d] = do_sanify_chain("B", [{a, 0, dead}, {b, 0, replica},
                                     {c, 0, active}, {d, 0, replica}],
                               [a, b], [c, d], 0, []),
      %% but without FF map we're (too) conservative (should be fixable
      %% someday)
      [c] = do_sanify_chain("B", [{a, 0, dead}, {b, 0, replica},
                                  {c, 0, active}, {d, 0, replica}],
                            [a, b], [], 0, []).
  
negative.code: data_loss_possible(VBucket, Chain, States) ->
      {_NodeStates, ChainStates, ExtraStates} = construct_vbucket_states(VBucket,
                                                                         Chain,
                                                                         States),
      case ChainStates of
          [{Master, State}|ReplicaStates] when State =:= missing ->
              OtherNodeStates = ReplicaStates ++ ExtraStates,
  