summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/couchdb/couch_db_update_notifier.erl6
-rw-r--r--src/couchdb/couch_os_process.erl2
2 files changed, 6 insertions, 2 deletions
diff --git a/src/couchdb/couch_db_update_notifier.erl b/src/couchdb/couch_db_update_notifier.erl
index ef50e704..a1019556 100644
--- a/src/couchdb/couch_db_update_notifier.erl
+++ b/src/couchdb/couch_db_update_notifier.erl
@@ -63,7 +63,11 @@ handle_call(_Request, State) ->
handle_info({'EXIT', Pid, Reason}, Pid) ->
?LOG_ERROR("Update notification process ~p died: ~p", [Pid, Reason]),
- {stop, nil}.
+ remove_handler;
+handle_info({'EXIT', _, _}, Pid) ->
+ %% the db_update event manager traps exits and forwards this message to all
+ %% its handlers. Just ignore as it wasn't our os_process that exited.
+ {ok, Pid}.
code_change(_OldVsn, State, _Extra) ->
{ok, State}.
diff --git a/src/couchdb/couch_os_process.erl b/src/couchdb/couch_os_process.erl
index c0b98946..63cc07b0 100644
--- a/src/couchdb/couch_os_process.erl
+++ b/src/couchdb/couch_os_process.erl
@@ -151,7 +151,7 @@ handle_cast(Msg, OsProc) ->
handle_info({Port, {exit_status, Status}}, #os_proc{port=Port}=OsProc) ->
?LOG_ERROR("OS Process died with status: ~p", [Status]),
- {stop, error, OsProc};
+ {stop, {exit_status, Status}, OsProc};
handle_info(Msg, OsProc) ->
?LOG_DEBUG("OS Proc: Unknown info: ~p", [Msg]),
{noreply, OsProc}.