anchor.diff:                    NotifyNode::boolean()) -> dht_node_state:state().
   abort_slide(State, SlideOp, Pred_or_Succ, Reason, NotifyNode) ->
       % write to log when aborting an already set-up slide:
  -    log:log(warn, "abort_slide(op: ~p, ~p, reason: ~p)~n",
  +    log:log(warn, "abort_slide(op: ~.0p, ~.0p, reason: ~.0p)~n",
               [SlideOp, Pred_or_Succ, Reason]),
       slide_op:reset_timer(SlideOp), % reset previous timeouts
       % potentially set up for joining nodes (slide with pred):
  
positive.code:     case get_slide_op(State, MoveFullId) of
          {ok, pred, SlideOp} ->
              % there should not be any previous slide_pred with the given ID!
              log:log(warn,"[ dht_node_move ~w ] slide_~w received but found previous slide_pred with the same ID (ID: ~w, slide_pred: ~w)~n", [comm:this(), PredOrSucc, MoveFullId, dht_node_state:get(State, slide_pred)]),
              abort_slide(State, SlideOp, pred, changed_parameters, true);
          {ok, succ, SlideOp} ->
              % the predecessor can already have a slide operation if it
  
negative.code:                 _ ->
                      % abort slide but do not notify the other node
                      % (this message should not have been received anyway!)
                      ErrorMsg = io_lib:format("~.0p received for a slide with ~s, but only expected for slides with~s~n",
                                               [MoveMsgTag, PredOrSucc, PredOrSuccExp]),
                      NewState = abort_slide(State, SlideOp, PredOrSucc, {protocol_error, ErrorMsg}, false),
                      log:log(warn, "[ dht_node_move ~.0p ] ~.0p received for a slide with my ~s, but only expected for slides with~s~n"
                                        "(operation: ~.0p)~n", [comm:this(), MoveMsgTag, PredOrSucc, PredOrSuccExp, SlideOp]),
                      NewState
              end;
          not_found ->
              log:log(warn,"[ dht_node_move ~.0p ] ~.0p received with no matching slide operation (ID: ~.0p, slide_pred: ~.0p, slide_succ: ~.0p)~n",
                      [comm:this(), MoveMsgTag, MoveFullId, dht_node_state:get(State, slide_pred), dht_node_state:get(State, slide_succ)]),
              State;
          {wrong_neighbor, Type, SlideOp} -> % wrong pred or succ
              case lists:member(slide_op:get_phase(SlideOp), WorkPhases) of
                  true ->
                      NewState = abort_slide(State, SlideOp, Type, wrong_pred_succ_node, true),
                      log:log(warn,"[ dht_node_move ~.0p ] ~.0p received but ~s changed during move (ID: ~.0p, node(slide): ~.0p, new_~s: ~.0p)~n",
                              [comm:this(), MoveMsgTag, Type, MoveFullId, slide_op:get_node(SlideOp), Type, dht_node_state:get(State, Type)]),
                      NewState;
                  _ -> State
  