anchor.diff:  -define(DEFAULT_GROUP, <<"main_group">>).
   -define(DEFAULT_ENVIRONMENT_ID, <<"default_executor">>).
   
  +%% When to_string/1 function is not implemented by the callback module,
  +%% str_utils:format/1 is used to print job in logs (see to_string/1 function).
  +%% Unfortunately, an exception is thrown and handled inside this function
  +%% and because of that macro ?error_stacktrace prints wrong stacktrace.
  +%% This macro is used to bypass the problem.
  +-define(log_error_with_stacktrace(Format, Args),
  +    log_error_with_stacktrace(erlang:get_stacktrace(), Format, Args)
  +).
  +
   %%%===================================================================
   %%% API
   %%%===================================================================
  
positive.code:         end
      catch
          E:R ->
              ?error_stacktrace("Slave job ~s of task ~p (module ~p) error ~p:~p",
                  [to_string(CallbackModule, Job), TaskID, CallbackModule, E, R]),
              error
      end.
  
negative.code:             {ok, JobDescription} = CallbackModule:to_string(Job),
              JobDescription;
          _ -> 
              str_utils:format_bin("~p", [Job])
      end.
  
  -spec repair_ongoing_tasks(pool(), environment_id()) -> [{id(), ctx() | other_node}].
  