Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error in hackney_headers_new #400

Closed
pwightman opened this issue Apr 6, 2017 · 1 comment
Closed

Error in hackney_headers_new #400

pwightman opened this issue Apr 6, 2017 · 1 comment

Comments

@pwightman
Copy link

pwightman commented Apr 6, 2017

hackney lib version: 0.7.1
httpoision lib version: 0.11.1

Using the follow_redirect option with a URL that redirects (https://google.com/ redirects to https://www.google.com/) fails inside hackney's header parsing. It seems related to the recent header parsing refactor for duplicate headers (#234 and related).

HTTPoison code (tried to reproduce in only hackney but couldn't quite figure it out, sorry ☹️):

HTTPoison.get("https://google.com/", [], follow_redirect: true)

Error:

** (FunctionClauseError) no function clause matching in :hackney_headers_new.do_fold/3
      (hackney) /Users/parkerwightman/cs/ohi/deps/hackney/src/hackney_headers_new.erl:147: :hackney_headers_new.do_fold([[{1, "Host", 119}], [{2, "Host", 119}], [{3, "Host", 119}], [{4, "Host", 46}], [{5, "Host", 103}], [{6, "Host", 111}], [{7, "Host", 111}], [{8, "Host", 103}], [{9, "Host", 108}], [{10, "Host", 101}], [{11, "Host", 46}], [{12, "Host", 99}], [{13, "Host", 111}], [{14, "Host", 109}]], #Function<6.29524015/3 in :hackney_headers_new.to_iolist/1>, [["User-Agent", ': ', "hackney/1.7.1", '\r\n']])
      (hackney) /Users/parkerwightman/cs/ohi/deps/hackney/src/hackney_headers_new.erl:184: :hackney_headers_new.to_iolist/1
      (hackney) /Users/parkerwightman/cs/ohi/deps/hackney/src/hackney_request.erl:95: :hackney_request.perform/2
      (hackney) /Users/parkerwightman/cs/ohi/deps/hackney/src/hackney.erl:373: :hackney.send_request/2
      (hackney) /Users/parkerwightman/cs/ohi/deps/hackney/src/hackney.erl:823: :hackney.redirect/2
      (hackney) /Users/parkerwightman/cs/ohi/deps/hackney/src/hackney.erl:757: :hackney.maybe_redirect1/3
      (hackney) /Users/parkerwightman/cs/ohi/deps/hackney/src/hackney.erl:377: :hackney.send_request/2
    (httpoison) lib/httpoison/base.ex:432: HTTPoison.Base.request/9
@edevil
Copy link

edevil commented Apr 18, 2017

Me too:

** (FunctionClauseError) no function clause matching in :hackney_headers_new.do_fold/3
    (hackney) /home/travis/build/brpx/trendex/deps/hackney/src/hackney_headers_new.erl:147: :hackney_headers_new.do_fold([[{1, "Host", 102}], [{2, "Host", 101}], [{3, "Host", 101}], [{4, "Host",
 100}], [{5, "Host", 115}], [{6, "Host", 46}], [{7, "Host", 102}], [{8, "Host", 101}], [{9, "Host", 101}], [{10, "Host", 100}], [{11, "Host", 98}], [{12, "Host", 117}], [{13, "Host", 114}], [{14
, "Host", 110}], [{15, "Host", 101}], [{16, "Host", 114}], [{17, "Host", 46}], [{18, "Host", 99}], [{19, "Host", 111}], [{20, "Host", 109}]], #Function<6.29524015/3 in :hackney_headers_new.to_io
list/1>, [["User-Agent", ': ', "hackney/1.7.1", '\r\n']])
    (hackney) /home/travis/build/brpx/trendex/deps/hackney/src/hackney_headers_new.erl:184: :hackney_headers_new.to_iolist/1
    (hackney) /home/travis/build/brpx/trendex/deps/hackney/src/hackney_request.erl:95: :hackney_request.perform/2
    (hackney) /home/travis/build/brpx/trendex/deps/hackney/src/hackney.erl:373: :hackney.send_request/2
    (hackney) /home/travis/build/brpx/trendex/deps/hackney/src/hackney.erl:823: :hackney.redirect/2
    (hackney) /home/travis/build/brpx/trendex/deps/hackney/src/hackney.erl:757: :hackney.maybe_redirect1/3
    (hackney) /home/travis/build/brpx/trendex/deps/hackney/src/hackney.erl:377: :hackney.send_request/2
    (httpoison) lib/httpoison/base.ex:432: HTTPoison.Base.request/9

edevil added a commit to edevil/sentry-elixir that referenced this issue Apr 24, 2017
Hackney 1.8.0 fixes a nasty bug: benoitc/hackney#400
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants