ninenines / gun

HTTP/1.1, HTTP/2, Websocket client (and more) for Erlang/OTP.
ISC License
891 stars 232 forks source link

Memory leak in long lived connection #233

Closed petrkozorezov closed 4 years ago

petrkozorezov commented 4 years ago
(node@127.0.0.1)58> element(17, element(2, sys:get_state(ConnPid))).
{http_state,#Port<0.515>,gun_tcp,#{},'HTTP/1.1',keepalive,
            <<>>,[],head,
            {0,0},
            head,
            [{set_cookie,["localhost",58,<<"5051">>],
                         <<"/test">>,200,
                         [{<<"date">>,<<"Wed, 10 Jun 2020 20:56:00 GMT">>},
                          {<<"content-length">>,<<"1">>},
                          {<<"content-type">>,<<"text/plain; charset=utf-"...>>}]},
             {set_cookie,["localhost",58,<<"5051">>],
                         <<"/test">>,200,
                         [{<<"date">>,<<"Wed, 10 Jun 2020 20:55:59 GM"...>>},
                          {<<"content-length">>,<<"1">>},
                          {<<"content-type">>,<<"text/plain; charset="...>>}]},
             {set_cookie,["localhost",58,<<"5051">>],
                         <<"/test">>,200,
                         [{<<"date">>,<<"Wed, 10 Jun 2020 20:55:5"...>>},
                          {<<"content-length">>,<<"1">>},
                          {<<"content-type">>,<<"text/plain; char"...>>}]},
             {set_cookie,["localhost",58,<<"5051">>],
                         <<"/test">>,200,
                         [{<<"date">>,<<"Wed, 10 Jun 2020 20:"...>>},
                          {<<"content-length">>,<<"1">>},
                          {<<"content-type">>,<<"text/plain; "...>>}]},
             {set_cookie,["localhost",58,<<"5051">>],
                         <<"/test">>,200,
                         [{<<"date">>,<<"Wed, 10 Jun 2020"...>>},
                          {<<"content-length">>,<<"1">>},
                          {<<"content-type">>,<<"text/pla"...>>}]},
             {set_cookie,["localhost",58,<<"5051">>],
                         <<"/test">>,200,
                         [{<<"date">>,<<"Wed, 10 Jun "...>>},
                          {<<"content-leng"...>>,<<"1">>},
                          {<<"content-"...>>,<<"text"...>>}]},
             {set_cookie,["localhost",58,<<"5051">>],
                         <<"/test">>,200,
                         [{<<"date">>,<<"Wed, 10 "...>>},
                          {<<"content-"...>>,<<"1">>},
                          {<<"cont"...>>,<<...>>}]},
             {set_cookie,["localhost",58,<<"5051">>],
                         <<"/test">>,200,
                         [{<<"date">>,<<"Wed,"...>>},
                          {<<"cont"...>>,<<...>>},
                          {<<...>>,...}]},
             {set_cookie,["localhost",58,<<"5051">>],
                         <<"/test">>,200,
                         [{<<"date">>,<<...>>},{<<...>>,...},{...}]},
             {set_cookie,["localhost",58,<<"5051">>],
                         <<"/test">>,200,
                         [{<<...>>,...},{...}|...]},
             {set_cookie,["localhost",58,<<"5051">>],
                         <<"/test">>,200,
                         [{...}|...]},
             {set_cookie,["localhost",58,<<...>>],<<"/test">>,200,[...]},
             {set_cookie,["localhost",58|...],<<"/test">>,200,...},
             {set_cookie,[[...]|...],<<...>>,...},
             {set_cookie,[...],...},
             {set_cookie,...},
             {...}|...]}
essen commented 4 years ago

This has already been fixed. https://github.com/ninenines/gun/commit/a3308b8e4771eff64011bc683c7bdd94b79ceff3