anchor.diff:      {ok, TaskID2} = ?assertMatch({ok, _}, rpc:call(Worker, tree_traverse, run,
           [?MODULE, file_ctx:new_by_guid(Guid1), RunOptions2])),
   
  +    % Stop pools
       RecAns = receive
           {cancel, Check} when Check =:= DirName ->
               ?assertEqual(ok, rpc:call(Worker, worker_pool, stop_sup_pool, [?MASTER_POOL_NAME])),
  
positive.code:             canceled = false, status = finished}}}, rpc:call(W, tree_traverse, get_task, [?MODULE, TaskID]), 30),
          ?assertMatch({ok, #document{value = #traverse_task{enqueued = false,
              canceled = false, status = finished}}}, rpc:call(W, tree_traverse, get_task, [?MODULE, TaskID2]), 30),
          ?assertMatch({ok, [], _}, rpc:call(W, traverse_task_list, list, [atom_to_binary(?MODULE, utf8), ongoing]), 30),
          ?assertMatch({ok, [], _}, rpc:call(W, traverse_task_list, list, [atom_to_binary(?MODULE, utf8), scheduled]), 30),
          check_ended(Worker, [TaskID, TaskID2])
      end, Workers).
  
  
negative.code:             timeout
      end,
      ?assertEqual(ok, RecAns),
  
      % Restart pools
      PoolName = atom_to_binary(?MODULE, utf8),
      ?assertMatch({ok, _}, rpc:call(Worker, worker_pool, start_sup_pool, [?MASTER_POOL_NAME,
          [{workers, 3}, {queue_type, lifo}]])),
      ?assertMatch({ok, _}, rpc:call(Worker, worker_pool, start_sup_pool, [?SLAVE_POOL_NAME,
          [{workers, 3}, {queue_type, lifo}]])),
      ?assertEqual(ok, rpc:call(Worker, traverse, restart_tasks, [PoolName, #{executor => ExecutorID}, Worker])),
  
      get_slave_ans(),
  
  