hackney icon indicating copy to clipboard operation
hackney copied to clipboard

Process exit signal when a invalid port is specified

Open D4no0 opened this issue 4 years ago • 0 comments

When making a TCP request with a bad port, exit signal is chained to the parent process.

Environments:

OTP 20.3
Elixir 1.9.4
Httpoison 1.6.2
Hackney 1.15.2

Code:

HTTPoison.get "http://example.com:6500000"

Output:

Output of the caught exit signal:

{:function_clause,
 [
   {:inet_tcp, :do_connect,
    [
      {93, 184, 216, 34},
      6500000,
      [{:packet, :raw}, {:active, false}, :binary],
      7998
    ], [file: 'inet_tcp.erl', line: 113]},
   {:gen_tcp, :try_connect, 6, [file: 'gen_tcp.erl', line: 167]},
   {:gen_tcp, :connect, 4, [file: 'gen_tcp.erl', line: 145]},
   {:hackney_connect, :do_connect, 5,
    [
      file: '/home/daniel/test_app/deps/hackney/src/hackney_connect.erl',
      line: 277
    ]},
   {:hackney_connect, :connect, 5,
    [
      file: '/home/daniel/test_app/deps/hackney/src/hackney_connect.erl',
      line: 47
    ]},
   {:hackney, :request, 5,
    [file: '/home/daniel/test_app/deps/hackney/src/hackney.erl', line: 333]},
   {HTTPoison.Base, :request, 6, [file: 'lib/httpoison/base.ex', line: 796]},
   {TestApp, :hello, 0, [file: 'lib/test_app.ex', line: 17]}
 ]}

Output of error:

** (exit) an exception was raised:
    ** (FunctionClauseError) no function clause matching in :inet_tcp.do_connect/4
        (kernel) inet_tcp.erl:113: :inet_tcp.do_connect({93, 184, 216, 34}, 6500000, [{:packet, :raw}, {:active, false}, :binary], 7999)
        (kernel) gen_tcp.erl:167: :gen_tcp.try_connect/6
        (kernel) gen_tcp.erl:145: :gen_tcp.connect/4
        (hackney) /home/daniel/test_app/deps/hackney/src/hackney_connect.erl:277: :hackney_connect.do_connect/5
        (hackney) /home/daniel/test_app/deps/hackney/src/hackney_connect.erl:47: :hackney_connect.connect/5
        (hackney) /home/daniel/test_app/deps/hackney/src/hackney.erl:333: :hackney.request/5
        (httpoison) lib/httpoison/base.ex:796: HTTPoison.Base.request/6
        (stdlib) erl_eval.erl:670: :erl_eval.do_apply/6
    (kernel) gen_tcp.erl:150: :gen_tcp.connect/4
    (hackney) /home/daniel/test_app/deps/hackney/src/hackney_connect.erl:277: :hackney_connect.do_connect/5
    (hackney) /home/daniel/test_app/deps/hackney/src/hackney_connect.erl:47: :hackney_connect.connect/5
    (hackney) /home/daniel/test_app/deps/hackney/src/hackney.erl:333: :hackney.request/5
    (httpoison) lib/httpoison/base.ex:796: HTTPoison.Base.request/6

D4no0 avatar Jan 14 '20 08:01 D4no0