inets/http bug in R10B-4

Ingela Anderton ingela@REDACTED
Fri Apr 1 12:01:22 CEST 2005


Well that is a bug and not a very new one I am afraid it seems to
have been lingering for quite a while. It has to do
with canceling the timeout timer. So the request is successful and the
answer is sent to the client. But the request handling process crashes
while trying to clean up before terminating or perhaps handling an
other request. I suppose it did wind it self through our automated
test cases as the client gets the correct response and except for the
crash report everything seems normal! In the case that you do not set
a timeout you will not bump in to the bug. Of course this will be fixed! 

Anders Nygren wrote:
> Hi
> I am getting a crash in http with R10B-4, I never had this problem with R10B-2
> SuSE Linux 9.2
> 
> Linux godot 2.6.8-24.13-default #1 Fri Mar 18 10:19:42 UTC 2005 i686
> i686 i386 GNU/Linux
> 
> Erlang (BEAM) emulator version 5.4.5 [source] [hipe]
> 
> (smsgw@REDACTED)9> http:request(get,{"http://google.com",[]},[{timeout,1000}],[]).
> {ok,{{"HTTP/1.1",200,"OK"},
>      [{"date","Thu, 31 Mar 2005 23:47:31 GMT"},
> ... more data
> 
> But I also get
> 
> =ERROR REPORT==== 31-Mar-2005::17:47:31 ===
> ** Generic server <0.263.0> terminating
> ** Last message in was {tcp,#Port<0.319>,
>                            
> <<50,62,38,99,111,112,121,59,50,48,48,53,32,71,111,111,103,108,101,32,45,32,66,117,115,99,97,110,100,111,32,56,44,48,53,56,44,48,52,52,44,54,53,49,32,112,225,103,105,110,97,115,32,119,101,98,60,47,102,111,110,116,62,60,47,112,62,60,47,99,101,110,116,101,114,62,60,47,98,111,100,121,62,60,47,104,116,109,108,62,13,10,48,13,10,13,10>>}
> ** When Server state == {state,{request,
>                                    #Ref<0.0.0.951>,
>                                    <0.211.0>,
>                                    3,
>                                    http,
>                                    {"www.google.com.mx",80},
>                                    "/",
>                                    [],
>                                    get,
>                                    {http_request_h,
>                                        undefined,
>                                        "keep-alive",
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        "www.google.com.mx",
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        [],
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        "0",
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        undefined,
>                                        []},
>                                    {[],[]},
>                                    {http_options,1000,true,[],false},
>                                    "http://google.com"},
>                                {tcp_session,
>                                    {{"www.google.com.mx",80},<0.263.0>},
>                                    false,
>                                    http,
>                                    #Port<0.319>,
>                                    1},
>                                {"HTTP/1.1",200,"OK"},
>                                {http_response_h,
>                                    undefined,
>                                    undefined,
>                                    "Thu, 31 Mar 2005 23:47:31 GMT",
>                                    undefined,
>                                    undefined,
>                                    "chunked",
>                                    undefined,
>                                    undefined,
>                                    undefined,
>                                    undefined,
>                                    undefined,
>                                    undefined,
>                                    undefined,
>                                    undefined,
>                                    undefined,
>                                    "GWS/2.1",
>                                    undefined,
>                                    undefined,
>                                    undefined,
>                                    undefined,
>                                    undefined,
>                                    "0",
>                                    undefined,
>                                    undefined,
>                                    undefined,
>                                    "text/html",
>                                    undefined,
>                                    undefined,
>                                    [{"cache-control","private"},
>                                     {"set-cookie",
>                                     
> "PREF=ID=66a1247f32127631:LD=es:TM=1112312851:LM=1112312851:S=nL_hpjFTzEzffYxo;
> expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/;
> domain=.google.com.mx"}]},
>                                undefined,
>                                {http_chunk,
>                                    decode_data,
>                                    [2228,
>                                    
> <<60,104,116,109,108,62,60,104,101,97,100,62,60,109,101,116,97,32,104,116,116,112,45,101,113,117,105,118,61,34,99,111
> 
> cut lots of ints
> 
> 47,119,119,119,46,103,111,111,103,108,101,46,99,111,109,47,110,99,114,62,71,111,111,103,108,101,46,99,111,109,32,105,110,32,69,110,103,108,105,115,104,60,47,97,62,60,47,102,111,110,116,62,60,112,62,60,102,111,110,116,32,115,105,122,101,61,45>>,
>                                     {nolimit,<<>>,2228,nolimit}]},
>                                {[],[]},
>                                new,
>                                [],
>                                nolimit,
>                                nolimit,
>                                {options,{undefined,[]},0,2,2,disabled},
>                                {timers,
>                                    [{#Ref<0.0.0.951>,#Ref<0.0.0.974>}],
>                                    undefined}}
> ** Reason for termination ==
> ** {{badmatch,#Ref<0.0.0.974>},
>     [{httpc_handler,answer_request,3},
>      {httpc_handler,terminate,2},
>      {gen_server,terminate,6},
>      {proc_lib,init_p,5}]}
> 
> =CRASH REPORT==== 31-Mar-2005::17:47:31 ===
>   crasher:
>     pid: <0.263.0>
>     registered_name: []
>     error_info: {{badmatch,#Ref<0.0.0.974>},
>                   [{httpc_handler,answer_request,3},
>                    {httpc_handler,terminate,2},
>                    {gen_server,terminate,6},
>                    {proc_lib,init_p,5}]}
>     initial_call: {gen,init_it,
>                       [gen_server,
>                        <0.129.0>,
>                        <0.129.0>,
>                        httpc_handler,
>                        [{request,#Ref<0.0.0.951>,
>                                  <0.211.0>,
>                                  3,
>                                  http,
>                                  {"www.google.com.mx",80},
>                                  "/",
>                                  [],
>                                  get,
>                                  {http_request_h,
>                                      undefined,
>                                      "keep-alive",
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      "www.google.com.mx",
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      [],
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      "0",
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      undefined,
>                                      []},
>                                  {[],[]},
>                                  {http_options,1000,true,[],false},
>                                  "http://google.com"},
>                         {options,{undefined,[]},0,2,2,disabled}],
>                        []]}
>     ancestors: [httpc_manager,httpc_sup,inets_sup,<0.125.0>]
>     messages: []
>     links: [<0.129.0>,#Port<0.319>]
>     dictionary: []
>     trap_exit: true
>     status: running
>     heap_size: 2584
>     stack_size: 21
>     reductions: 2346
>   neighbours:
> 
> (smsgw@REDACTED)10>                                                     
> 
> 
> /Anders Nygren

-- 
/Ingela - OTP team









More information about the erlang-questions mailing list