anchor.diff:                            end
                     end, [], Good),
   
  -            case FailedNodes of
  +            case FailedNodes ++ ReallyBadNodes of
                   [] ->
                       ok;
  -                _ ->
  -                    exit({buckets_cleanup_failed, FailedNodes})
  +                AllFailedNodes ->
  +                    {buckets_cleanup_failed, AllFailedNodes}
               end
       end.
  
positive.code:     NumBuckets = length(BucketConfigs),
      ?rebalance_debug("BucketConfigs = ~p", [BucketConfigs]),
  
      maybe_cleanup_old_buckets(KeepNodes),
  
  
      %% Eject failed nodes first so they don't cause trouble
  
negative.code:         {_, _, DownNodes} when DownNodes =/= [] ->
              ?rebalance_error("Failed to cleanup old buckets on some nodes: ~p",
                               [DownNodes]),
              {buckets_cleanup_failed, DownNodes};
          {Good, ReallyBad, []} ->
              ReallyBadNodes =
                  case ReallyBad of
                      [] ->
                          [];
                      _ ->
                          ?rebalance_error(
                             "Failed to cleanup old buckets on some nodes: ~n~p",
                             [ReallyBad]),
                          lists:map(fun ({Node, _}) -> Node end, ReallyBad)
                  end,
  
              FailedNodes =
                  lists:foldl(
  