diff options
author | Damien F. Katz <damien@apache.org> | 2009-05-30 02:43:52 +0000 |
---|---|---|
committer | Damien F. Katz <damien@apache.org> | 2009-05-30 02:43:52 +0000 |
commit | 7860f047be25f99c4d1e83f9456c7eb245ad37dc (patch) | |
tree | 8a53ccfc11cb17bd666035892c8dbf14e36d5b0e /src/couchdb/couch_view_group.erl | |
parent | c1ca0dd42524fb6999e1f05de94ccff71bc497b6 (diff) |
Test and fix for infinite loops in view_servers, fix for crashed OS processes causing leaked erlang processes and fix for view server crashing when view group process terminates.
git-svn-id: https://svn.apache.org/repos/asf/couchdb/trunk@780165 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/couchdb/couch_view_group.erl')
-rw-r--r-- | src/couchdb/couch_view_group.erl | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/couchdb/couch_view_group.erl b/src/couchdb/couch_view_group.erl index 28679927..0ab1077e 100644 --- a/src/couchdb/couch_view_group.erl +++ b/src/couchdb/couch_view_group.erl @@ -274,9 +274,10 @@ handle_info({'DOWN',_,_,_,_}, State) -> {stop, normal, reply_all(State, shutdown)}. -terminate(Reason, State) -> - reply_all(State, Reason), - couch_util:terminate_linked(Reason), +terminate(Reason, #group_state{updater_pid=Update, compactor_pid=Compact}=S) -> + reply_all(S, Reason), + catch exit(Update, Reason), + catch exit(Compact, Reason), ok. code_change(_OldVsn, State, _Extra) -> |