couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Davis <paul.joseph.da...@gmail.com>
Subject Re: svn commit: r831502 - /couchdb/trunk/src/couchdb/couch_httpd_show.erl
Date Sat, 31 Oct 2009 20:22:25 GMT
Oh, thanks for reminding me. I realized that this morning and then
promptly got distracted by the football game.

On Sat, Oct 31, 2009 at 6:01 AM, Jan Lehnardt <jan@apache.org> wrote:
> Hi Paul,
>
> is this worth a backport to 0.10?
>
> Cheers
> Jan
> --
>
> On 31 Oct 2009, at 02:17, davisp@apache.org wrote:
>
>> Author: davisp
>> Date: Sat Oct 31 01:17:04 2009
>> New Revision: 831502
>>
>> URL: http://svn.apache.org/viewvc?rev=831502&view=rev
>> Log:
>> List functions weren't returning OS processes.
>>
>> Needed to add a call to couch_query_server:stop_map_doc/1 to return
>> outstanding OS processes back to the query servers pools. This was
>> causing some awesome errors by keeping the query_servers PID linked to
>> the socket PID, which caused errors in apparently unrelated requests as
>> the query_servers daemon was restarted on config changes.
>>
>> Also needed to move where the query servers were requested in list
>> functions involving reduces. Map only lists were fine though.
>>
>>
>> Modified:
>>   couchdb/trunk/src/couchdb/couch_httpd_show.erl
>>
>> Modified: couchdb/trunk/src/couchdb/couch_httpd_show.erl
>> URL:
>> http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_show.erl?rev=831502&r1=831501&r2=831502&view=diff
>>
>> ==============================================================================
>> --- couchdb/trunk/src/couchdb/couch_httpd_show.erl (original)
>> +++ couchdb/trunk/src/couchdb/couch_httpd_show.erl Sat Oct 31 01:17:04
>> 2009
>> @@ -286,14 +286,14 @@
>>        skip = SkipCount,
>>        group_level = GroupLevel
>>    } = QueryArgs,
>> -    % get the os process here
>> -    % pass it into the view fold with closures
>> -    {ok, QueryServer} = couch_query_servers:start_view_list(Lang,
>> ListSrc),
>>    Headers = MReq:get(headers),
>>    Hlist = mochiweb_headers:to_list(Headers),
>>    Accept = proplists:get_value('Accept', Hlist),
>>    CurrentEtag = couch_httpd_view:view_group_etag(Group, Db, {Lang,
>> ListSrc, Accept, UserCtx}),
>>    couch_httpd:etag_respond(Req, CurrentEtag, fun() ->
>> +        % get the os process here
>> +        % pass it into the view fold with closures
>> +        {ok, QueryServer} = couch_query_servers:start_view_list(Lang,
>> ListSrc),
>>        StartListRespFun = make_reduce_start_resp_fun(QueryServer, Req, Db,
>> CurrentEtag),
>>        SendListRowFun = make_reduce_send_row_fun(QueryServer, Db),
>>
>> @@ -316,14 +316,14 @@
>>        skip = SkipCount,
>>        group_level = GroupLevel
>>    } = QueryArgs,
>> -    % get the os process here
>> -    % pass it into the view fold with closures
>> -    {ok, QueryServer} = couch_query_servers:start_view_list(Lang,
>> ListSrc),
>>    Headers = MReq:get(headers),
>>    Hlist = mochiweb_headers:to_list(Headers),
>>    Accept = proplists:get_value('Accept', Hlist),
>>    CurrentEtag = couch_httpd_view:view_group_etag(Group, Db, {Lang,
>> ListSrc, Accept, UserCtx, Keys}),
>>    couch_httpd:etag_respond(Req, CurrentEtag, fun() ->
>> +        % get the os process here
>> +        % pass it into the view fold with closures
>> +        {ok, QueryServer} = couch_query_servers:start_view_list(Lang,
>> ListSrc),
>>        StartListRespFun = make_reduce_start_resp_fun(QueryServer, Req, Db,
>> CurrentEtag),
>>        SendListRowFun = make_reduce_send_row_fun(QueryServer, Db),
>>
>> @@ -365,6 +365,7 @@
>>            [<<"end">>, Chunks] =
>> couch_query_servers:render_list_tail(QueryServer),
>>            send_non_empty_chunk(Resp, ?b2l(?l2b(Chunks)))
>>    end,
>> +    couch_query_servers:stop_doc_map(QueryServer),
>>    last_chunk(Resp).
>>
>>
>>
>>
>
>

Mime
View raw message