summaryrefslogtreecommitdiff
path: root/src/couchdb/couch_view_group.erl
diff options
context:
space:
mode:
authorDamien F. Katz <damien@apache.org>2009-05-30 02:43:52 +0000
committerDamien F. Katz <damien@apache.org>2009-05-30 02:43:52 +0000
commit7860f047be25f99c4d1e83f9456c7eb245ad37dc (patch)
tree8a53ccfc11cb17bd666035892c8dbf14e36d5b0e /src/couchdb/couch_view_group.erl
parentc1ca0dd42524fb6999e1f05de94ccff71bc497b6 (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.erl7
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) ->