[erlang-questions] inets/httpc bad match issue for 2 post requests
Shawn Debnath
shawn@REDACTED
Thu Jan 15 21:00:41 CET 2015
Interesting finding, after adding some debug printing to print out headers, now I can’t repro the issue:
64
65 %% Invoke REST API calls via same inets/httpc processes
66 same_inets_for_calls_test() ->
67
68 inets:start(),
69
70 BeginUrl = ?API_BASE ++ "begin_media_post",
71 BeginH1 = [{"x-pryvy-authorization-status","Unknown"}],
72 BeginHeaders = [{"x-pryvy-authorized-userid","100"} | BeginH1],
73 {ok, {{_, BeginStatus, BeginResponseReason}, BeginResponseHeaders,
74 BeginResponseBody}} =
75 httpc:request(post, {BeginUrl, BeginHeaders, ?CONTENT_TYPE_JSON,
76 ?SAMPLE_JSON_CONTENT}, [], []),
77 io:format(standard_io, "resason: ~p~n headers: ~p~n body: ~p~n",
78 [BeginResponseReason, BeginResponseHeaders, BeginResponseBody]),
79 ?assertEqual(?HTTP_UNAUTH, BeginStatus),
80
81 EndUrl = ?API_BASE ++ "end_media_post",
82 EndH1 = [{"x-pryvy-authorization-status","Unknown"}],
83 EndHeaders = [{"x-pryvy-authorized-userid","100"} | EndH1],
84 {ok, {{_, EndStatus, EndResponseReason}, EndResponseHeaders,
85 EndResponseBody}} =
86 httpc:request(post, {EndUrl, EndHeaders, ?CONTENT_TYPE_JSON,
87 ?SAMPLE_JSON_CONTENT}, [], []),
88 io:format(standard_io, "resason: ~p~n headers: ~p~n body: ~p~n",
89 [EndResponseReason, EndResponseHeaders, EndResponseBody]),
90 ?assertEqual(?HTTP_UNAUTH, EndStatus),
91
92 inets:stop().
Smells like the inets/httpc timing issue?
Thanks,
Shawn
From: Shawn Debnath
Date: Thursday, January 15, 2015 at 11:49 AM
To: Erlang Questions
Subject: [erlang-questions] inets/httpc bad match issue for 2 post requests
Hi there,
Wondering if anyone can shed some light on this issue I am seeing.
I am trying to understand what may be causing **error:{badmatch,{error,socket_closed_remotely}} when using the same inets process to do 2 POST/PUT requests. The same code works just fine when issuing the same rest API calls to two separate inets processes or when issuing 2 GET requests to the same inets process.
Using webmachine on the server side which is not reporting any errors, and looking at the WMTRACEs, it correctly returns HTTP 401 error, which is expected.
Test source and output can be found at: http://pastebin.com/9DFzxLps
Thanks,
Shawn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20150115/5fbf5b80/attachment.htm>
More information about the erlang-questions
mailing list