sergot / http-useragent

Web user agent class for Perl 6.
MIT License
36 stars 39 forks source link

ex_readme.p6 gives an Internal Error #196

Open johnsaigle opened 6 years ago

johnsaigle commented 6 years ago

This example gives the following errors:

Internal Error: 'server returned no data'
  in block  at /Applications/Rakudo/share/perl6/site/sources/FD28A8E22DFE16B70B757D9981C7B6C25543060C (HTTP::UserAgent) line 259
  in any  at /Applications/Rakudo/share/perl6/site/precomp/F91BAB44DF15C5C298C627DD5E0F9D819ED79939.1517344679.60204/FD/FD28A8E22DFE16B70B757D9981C7B6C25543060C line 1
  in method new at /Applications/Rakudo/share/perl6/site/sources/DDDD4497B34FC81BC1F5FF467999BC4DA2FA1CEB (HTTP::Response) line 25
  in method get-response at /Applications/Rakudo/share/perl6/site/sources/FD28A8E22DFE16B70B757D9981C7B6C25543060C (HTTP::UserAgent) line 291
  in method request at /Applications/Rakudo/share/perl6/site/sources/FD28A8E22DFE16B70B757D9981C7B6C25543060C (HTTP::UserAgent) line 159
  in method get at /Applications/Rakudo/share/perl6/site/sources/FD28A8E22DFE16B70B757D9981C7B6C25543060C (HTTP::UserAgent) line 102
  in method get at /Applications/Rakudo/share/perl6/site/sources/FD28A8E22DFE16B70B757D9981C7B6C25543060C (HTTP::UserAgent) line 105
  in block <unit> at reporter.pl6 line 12

I'm using OS X Sierra.

Perl6 version:

perl6 -v
This is Rakudo Star version 2018.01 built on MoarVM version 2018.01
implementing Perl 6.c.
jonathanstowe commented 6 years ago

I hate to say "it works for me", but it does :-)

This is reminiscent of a failure that happens when the SSL handshake fails and IIRC this is possible if the server name extension isn't implemented in the version of OpenSSL. Do you know what version of OpenSSL you have installed, and is it possible to upgrade it?

johnsaigle commented 6 years ago

@jonathanstowe You could be right that this is an OpenSSL issue -- however I am working on OS X and afaik Apple uses its own TLS libraries for... things?

I've been trying to get help for this on the #perl6 irc channel and on StackOverflow which led to @zoffixznet creating this Gist.

On running it, I got this output:

===> Testing [FAIL]: HTTP::UserAgent:ver<1.1.39>:auth<github:sergot>
Aborting due to test failure: HTTP::UserAgent:ver<1.1.39>:auth<github:sergot> (use --force-test to override)
  in code  at /Users/john/rakudo/install/share/perl6/site/sources/7926F4F3ED4C81AA5DA2A54C8AE1E03D03424CCE (Zef::Client) line 375
  in method test at /Users/john/rakudo/install/share/perl6/site/sources/7926F4F3ED4C81AA5DA2A54C8AE1E03D03424CCE (Zef::Client) line 355
  in code  at /Users/john/rakudo/install/share/perl6/site/sources/7926F4F3ED4C81AA5DA2A54C8AE1E03D03424CCE (Zef::Client) line 531
  in sub  at /Users/john/rakudo/install/share/perl6/site/sources/7926F4F3ED4C81AA5DA2A54C8AE1E03D03424CCE (Zef::Client) line 528
  in method install at /Users/john/rakudo/install/share/perl6/site/sources/7926F4F3ED4C81AA5DA2A54C8AE1E03D03424CCE (Zef::Client) line 623
  in sub MAIN at /Users/john/rakudo/install/share/perl6/site/sources/E4784A2A0FA00D16808817186E95FE74BEF3FE2D (Zef::CLI) line 152
  in block <unit> at /Users/john/rakudo/install/share/perl6/site/resources/3065D08F5332CA244672D7F8A05B603F92BB8A7D line 3
  in sub MAIN at /Users/john/rakudo/install/share/perl6/site/bin/zef line 2
  in block <unit> at /Users/john/rakudo/install/share/perl6/site/bin/zef line 2

If this is an OpenSSL issue, is there something, somewhere in Perl6 or this module that requires its use vs. the OS X default? Am I missing something? I'm not sure how far upstream this problem is or if it's so specific to my computer that I can't find a solution.

Even upgrading OpenSSL on OS X seems to be non trivial.

I just wanna use Perl6! 😅 Any help at all would be appreciated but I understand if this is issue is too niche to assist me with...