anchor.diff:  %
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   test_crash_recovery(_Config) ->
  +    % do nothing
  +    F = fun(_DHTNodes) ->
  +                ok
  +        end,
  +
  +    generic_crash_recovery_test(F, 4).
  +
  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  +%
  +% crash recovery test with one node blocking prbr-messages
  +%
  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  +test_crash_recovery_one_dead_node(_Config) ->
  +    % delete the lease dbs on the first node
  +    F = fun(DHTNodes) ->
  +                % drop the four lease_dbs on the first node
  +                erase_lease_dbs(hd(DHTNodes))
  +        end,
  +
  +    generic_crash_recovery_test(F, 3).
  +
  +
  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  +%
  +% generic crash recovery test
  +%
  +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  +generic_crash_recovery_test(DoBadThings, ExpectedLeases) ->
       % we create a ring with four nodes. We stop lease renewal on all
       % nodes and wait for the leases to timeout.
       DHTNodes = pid_groups:find_all(dht_node),
  
positive.code:     
      % wait for leases to reappear
      ct:pal("cr: wait for leases to reappear"),
      lease_helper:wait_for_number_of_valid_active_leases(4).
  
negative.code: 
  groups() ->
      [{crash_recovery_tests,[sequence], [
                                          test_crash_recovery,
                                          test_crash_recovery_one_dead_node
                                         ]}
      ].
  
  