anchor.diff:      DiagPath = path_config:tempfile("vbmap_diag", ""),
   
       try
  -        R = do_invoke_vbmap(VbmapPath, maxflow, DiagPath, Nodes,
  +        R = do_invoke_vbmap(VbmapPath, maxflow, DiagPath, CurrentMap, Nodes,
                               NumVBuckets, NumSlaves, NumReplicas, Tags),
           case R of
               {ok, Map} ->
  
positive.code:             NodesMapping = dict:from_list(misc:enumerate(Nodes, 0)),
  
              try
                  Decoded = ejson:decode(Output),
                  Map = lists:map(
                          fun (Chain) ->
                                  Length = length(Chain),
                                  [dict:fetch(N, NodesMapping) || N <- Chain] ++
                                      lists:duplicate(NumReplicas - Length + 1, undefined)
                          end, Decoded),
                  {ok, Map}
              catch
                  E:T ->
  
negative.code:                 ale:info(?USER_LOGGER,
                           "Couldn't generate rack-aware vbucket map. "
                           "Falling back to rack-unaware one."),
                  {ok, Map} = do_invoke_vbmap(VbmapPath, dummy, DiagPath,
                                              CurrentMap, Nodes, NumVBuckets,
                                              NumSlaves, NumReplicas, Tags),
                  Map
          end
      after
          file:delete(DiagPath)
      end.
  
  do_invoke_vbmap(VbmapPath, Backend, DiagPath,
                  CurrentMap, Nodes, NumVBuckets, NumSlaves, NumReplicas, Tags) ->
      misc:executing_on_new_process(
        fun () ->
                do_invoke_vbmap_body(VbmapPath, Backend, DiagPath, CurrentMap, Nodes,
                                     NumVBuckets, NumSlaves, NumReplicas, Tags)
        end).
  
  do_invoke_vbmap_body(VbmapPath, Backend, DiagPath, CurrentMap, Nodes,
                       NumVBuckets, NumSlaves, NumReplicas, Tags) ->
      NumNodes = length(Nodes),
  
  