diff options
Diffstat (limited to 'src/couch_replicator/src/couch_replicator_job.erl')
-rw-r--r-- | src/couch_replicator/src/couch_replicator_job.erl | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/src/couch_replicator/src/couch_replicator_job.erl b/src/couch_replicator/src/couch_replicator_job.erl index c8c143a58..d11bdb738 100644 --- a/src/couch_replicator/src/couch_replicator_job.erl +++ b/src/couch_replicator/src/couch_replicator_job.erl @@ -221,12 +221,12 @@ handle_info(timeout, delayed_init) -> {ok, State} -> {noreply, State}; {stop, Reason, State} -> {stop, Reason, State} catch - exit:{shutdown, Exit} when Exit =:= finished orelse Exit =:= halt -> - Stack = erlang:get_stacktrace(), - {stop, {shutdown, Exit}, {init_error, Stack}}; - _Tag:Error -> + ?STACKTRACE(exit, {shutdown, finished}, Stack) + {stop, {shutdown, finished}, {init_error, Stack}}; + ?STACKTRACE(exit, {shtudown, halt}, Stack) + {stop, {shutdown, halt}, {init_error, Stack}}; + ?STACKTRACE(_Tag, Error, Stack) ShutdownReason = {error, replication_start_error(Error)}, - Stack = erlang:get_stacktrace(), {stop, {shutdown, ShutdownReason}, {init_error, Stack}} end; @@ -406,16 +406,15 @@ delayed_init() -> try do_init(Job, JobData) of State = #rep_state{} -> {ok, State} catch - exit:{http_request_failed, _, _, max_backoff} -> - Stack = erlang:get_stacktrace(), + ?STACKTRACE(exit, {http_request_failed, _, _, max_backoff}, Stack) reschedule_on_error(undefined, Job, JobData, max_backoff), {stop, {shutdown, max_backoff}, {init_error, Stack}}; - exit:{shutdown, Exit} when Exit =:= finished orelse Exit =:= halt -> - Stack = erlang:get_stacktrace(), - {stop, {shutdown, Exit}, {init_error, Stack}}; - _Tag:Error -> + ?STACKTRACE(exit, {shutdown, finished}, Stack) + {stop, {shutdown, finished}, {init_error, Stack}}; + ?STACKTRACE(exit, {shutdown, halt}, Stack) + {stop, {shutdown, halt}, {init_error, Stack}}; + ?STACKTRACE(_Tag, Error, Stack) Reason = {error, replication_start_error(Error)}, - Stack = erlang:get_stacktrace(), ErrMsg = "~p : job ~p failed during startup ~p stack:~p", couch_log:error(ErrMsg, [?MODULE, Job, Reason, Stack]), reschedule_on_error(undefined, Job, JobData, Reason), |