You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by rn...@apache.org on 2016/08/22 11:19:52 UTC
[26/50] ibrowse commit: updated refs/heads/upstream to b28542d
Merge branch 'merge_pull_req_123'
Project: http://git-wip-us.apache.org/repos/asf/couchdb-ibrowse/repo
Commit: http://git-wip-us.apache.org/repos/asf/couchdb-ibrowse/commit/ae6a9185
Tree: http://git-wip-us.apache.org/repos/asf/couchdb-ibrowse/tree/ae6a9185
Diff: http://git-wip-us.apache.org/repos/asf/couchdb-ibrowse/diff/ae6a9185
Branch: refs/heads/upstream
Commit: ae6a91855bd573015e25878e94c7c6cccdb41471
Parents: ea3305d 3c96a91
Author: Chandrashekhar Mullaparthi <ch...@gmail.com>
Authored: Mon Sep 28 20:55:25 2015 +0100
Committer: Chandrashekhar Mullaparthi <ch...@gmail.com>
Committed: Mon Sep 28 20:55:25 2015 +0100
----------------------------------------------------------------------
.gitignore | 1 +
CONTRIBUTORS | 3 +
Makefile | 7 +-
README.md | 2 +-
include/ibrowse.hrl | 7 +-
rebar | Bin 90778 -> 188026 bytes
src/ibrowse.erl | 155 +++++++++++---------
src/ibrowse_http_client.erl | 251 +++++++++++++++++++++------------
src/ibrowse_lb.erl | 108 +++++---------
src/ibrowse_lib.erl | 10 +-
test/ibrowse_functional_tests.erl | 174 +++++++++++++++++++++++
test/ibrowse_load_test.erl | 181 ++++++++++++++++++++++++
test/ibrowse_test.erl | 155 ++++++++++++++++----
test/ibrowse_test_server.erl | 124 +++++++++++-----
14 files changed, 876 insertions(+), 302 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-ibrowse/blob/ae6a9185/CONTRIBUTORS
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-ibrowse/blob/ae6a9185/README.md
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-ibrowse/blob/ae6a9185/src/ibrowse.erl
----------------------------------------------------------------------
diff --cc src/ibrowse.erl
index 1ffa11b,51fcb86..46a3708
--- a/src/ibrowse.erl
+++ b/src/ibrowse.erl
@@@ -340,7 -341,7 +345,7 @@@ send_req(Url, Headers, Method, Body, Op
Max_sessions,
Max_pipeline_size,
{SSLOptions, IsSSL},
- Headers, Method, Body, Options_1, Timeout, Max_attempts, 0);
- Headers, Method, Body, Options_1, Timeout, Timeout, os:timestamp(), 0);
++ Headers, Method, Body, Options_1, Timeout, Timeout, os:timestamp(), Max_attempts, 0);
Err ->
{error, {url_parsing_failed, Err}}
end.
@@@ -349,7 -350,8 +354,8 @@@ try_routing_request(Lb_pid, Parsed_url
Max_sessions,
Max_pipeline_size,
{SSLOptions, IsSSL},
- Headers, Method, Body, Options_1, Timeout, Max_attempts, Try_count) when Try_count < Max_attempts ->
+ Headers, Method, Body, Options_1, Timeout,
- Ori_timeout, Req_start_time, Try_count) when Try_count =< 3 ->
++ Ori_timeout, Req_start_time, Max_attempts, Try_count) when Try_count < Max_attempts ->
ProcessOptions = get_value(worker_process_options, Options_1, []),
case ibrowse_lb:spawn_connection(Lb_pid, Parsed_url,
Max_sessions,
@@@ -360,18 -362,29 +366,29 @@@
case do_send_req(Conn_Pid, Parsed_url, Headers,
Method, Body, Options_1, Timeout) of
{error, sel_conn_closed} ->
- try_routing_request(Lb_pid, Parsed_url,
- Max_sessions,
- Max_pipeline_size,
- {SSLOptions, IsSSL},
- Headers, Method, Body, Options_1, Timeout, Max_attempts, Try_count + 1);
+ Time_now = os:timestamp(),
+ Time_taken_so_far = trunc(round(timer:now_diff(Time_now, Req_start_time)/1000)),
+ Time_remaining = Ori_timeout - Time_taken_so_far,
+ Time_remaining_percent = trunc(round((Time_remaining/Ori_timeout)*100)),
+ %% io:format("~p -- Time_remaining: ~p (~p%)~n", [self(), Time_remaining, Time_remaining_percent]),
+ case (Time_remaining > 0) andalso (Time_remaining_percent >= 5) of
+ true ->
+ try_routing_request(Lb_pid, Parsed_url,
+ Max_sessions,
+ Max_pipeline_size,
+ {SSLOptions, IsSSL},
+ Headers, Method, Body, Options_1,
- Time_remaining, Ori_timeout, Req_start_time, Try_count + 1);
++ Time_remaining, Ori_timeout, Req_start_time, Max_attempts, Try_count + 1);
+ false ->
+ {error, retry_later}
+ end;
Res ->
Res
end;
Err ->
Err
end;
- try_routing_request(_, _, _, _, _, _, _, _, _, _, _, _) ->
-try_routing_request(_, _, _, _, _, _, _, _, _, _, _, _, _) ->
++try_routing_request(_, _, _, _, _, _, _, _, _, _, _, _, _, _) ->
{error, retry_later}.
merge_options(Host, Port, Options) ->
http://git-wip-us.apache.org/repos/asf/couchdb-ibrowse/blob/ae6a9185/src/ibrowse_http_client.erl
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/couchdb-ibrowse/blob/ae6a9185/test/ibrowse_test.erl
----------------------------------------------------------------------