anchor.diff:                      case length(Keys) of
                           0 ->
                               MapperData1 = lists:keydelete(Id, 1, lists:keydelete(Pid, 1, MapperData)),
  -                            {no_output, maybe_done(State#state{mapper_data=MapperData1})};
  +                            maybe_done(State#state{mapper_data=MapperData1});
                           _C ->
                               try
                                   {_Partition, BadNode} = VNode,
  
positive.code:                     end;
                  false ->
                      MapperData1 = lists:keydelete(Pid, 1, MapperData),
                      {no_output, maybe_done(State#state{mapper_data=MapperData1})}
              end;
          false ->
              {stop, {error, {dead_mapper, erlang:get_stacktrace(), MapperData}}, State}
  
negative.code:     erlang:monitor(process, MapperPid),
      {no_output, State#state{mapper_data=MapperData1}};
  
  handle_event({mapexec_reply, VNode, BKey, Reply, Executor}, #state{fsms=FSMs, mapper_data=MapperData,
                                                                     pending=Pending}=State) ->
      case dict:is_key(Executor, FSMs) of
          false ->
              % node retry case will produce dictionary miss
              maybe_done(State);
          true ->
              Pending1 = Pending ++ Reply,
              FSMs1 = update_counter(Executor, FSMs),
              MapperData1 = update_inputs(Executor, VNode, BKey, MapperData),
              maybe_done(State#state{fsms=FSMs1, mapper_data=MapperData1, pending=Pending1})
      end;
  
  handle_event({mapexec_error, _Executor, Reply}, State) ->
  