anchor.diff:      %% ct:pal("Barriers set~n"),
   
       %% TM only will perform the tx_tm_rtm_commit, that lead to the BP
  -    %% bp_step blocks. Do it asynchronously. (We don't know which TM
  -    %% got the request.
  +    %% bp_step blocks. Do it asynchronously (we don't know which TM
  +    %% got the request).
       Pids = [ spawn(fun () -> gen_component:bp_step(X) end) || X <- TMs ],
   
       %% report all tx_tms as failed after the commit has started...
  
positive.code: suite() -> [{timetrap, {seconds, 120}}].
  
  init_per_suite(Config) ->
      Config2 = unittest_helper:init_per_suite(Config),
      {priv_dir, PrivDir} = lists:keyfind(priv_dir, 1, Config2),
      unittest_helper:make_ring_with_ids(fun() -> ?RT:get_replica_keys(?RT:hash_key("0")) end, [{config, [{log_path, PrivDir}]}]),
      Config2.
  
  end_per_suite(Config) ->
      unittest_helper:end_per_suite(Config).
  
  init_per_testcase(TestCase, Config) ->
      _ = case TestCase of
              tm_crash ->
                  %% stop ring from previous test case (may ran into a timeout)
                  unittest_helper:stop_ring(),
                  {priv_dir, PrivDir} = lists:keyfind(priv_dir, 1, Config),
                  unittest_helper:make_ring(4, [{config, [{log_path, PrivDir}]}]),
                  unittest_helper:wait_for_stable_ring(),
                  unittest_helper:wait_for_stable_ring_deep();
              tp_crash ->
                  %% stop ring from previous test case (may ran into a timeout)
                  unittest_helper:stop_ring(),
                  {priv_dir, PrivDir} = lists:keyfind(priv_dir, 1, Config),
                  unittest_helper:make_ring(4, [{config, [{log_path, PrivDir}]}]),
                  unittest_helper:wait_for_stable_ring(),
                  unittest_helper:wait_for_stable_ring_deep();
              all_tp_crash ->
                  %% stop ring from previous test case (may ran into a timeout)
                  unittest_helper:stop_ring(),
                  {priv_dir, PrivDir} = lists:keyfind(priv_dir, 1, Config),
                  unittest_helper:make_ring(4, [{config, [{log_path, PrivDir}]}]),
                  unittest_helper:wait_for_stable_ring(),
                  unittest_helper:wait_for_stable_ring_deep();
              _ -> ok
          end,
      Config.
  
  end_per_testcase(TestCase, Config) ->
      _ = case TestCase of
              tm_crash ->
                  unittest_helper:stop_ring();
              tp_crash ->
                  unittest_helper:stop_ring();
              all_tp_crash ->
                  unittest_helper:stop_ring();
              _ -> ok
          end,
      Config.
  
  causes() -> [readlock, writelock, versiondec, versioninc, none].
  
negative.code: 
      %%[ erlang:exit(Pid, kill) || Pid <- Pids ],
  
      ok.
  
  all_tp_crash(_) ->
      ct:pal("Starting all_tp_crash, simulated by holding the dht_node_proposers~n"),
  