anchor.diff:  %% can be set with env riak_core, handoff_status_interval
   %% note this is in seconds
   -define(STATUS_INTERVAL, 2).
  +
  +-define(log_fail(Str, Args),
  +        lager:error("~p transfer of ~p from ~p ~p to ~p ~p failed " ++ Str,
  +                    [Type, Module, SrcNode, SrcPartition, TargetNode,
  +                     TargetPartition, Args])).
   
   %% Accumulator for the visit item HOF
   -record(ho_acc,
  
positive.code: 
                   FoldTimeDiff = end_fold_time(StartFoldTime),
  
                   log_complete(Module, {Type, Opts}, SrcNode,
                                TargetNode, SentCount, FoldTimeDiff),
  
                   case Type of
                       repair -> ok;
                       _ -> gen_fsm:send_event(ParentPid, handoff_complete)
                   end;
               {error, ErrReason} ->
                   ReasonStr2 = io_lib:format(" because of ~p",
                                              [ErrReason]),
                   log_fail(Module, {Type, Opts}, SrcNode,
                            TargetNode, ReasonStr2),
                   if ErrReason == timeout ->
                           riak_core_stat:update(handoff_timeouts);
                      true -> ok
  
negative.code:          exit:{shutdown, timeout} ->
               %% A receive timeout during handoff
               riak_core_stat:update(handoff_timeouts),
               ?log_fail(" because of TCP recv timeout", []);
           Err:Reason ->
               ?log_fail(" because of ~p:~p ~p",
                         [Err, Reason, erlang:get_stacktrace()]),
               gen_fsm:send_event(ParentPid, {handoff_error, Err, Reason})
       end.
  
  