# New Ticket Created by "brian d foy" # Please include the string: [perl #133057] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=133057 >
I have this little program where I want to fetch web thingys concurrently. There's a problem with the combination of HTTP::UserAgent and Promises although I don't know which one doesn't work: #!perl6 use HTTP::UserAgent; my $ua = HTTP::UserAgent.new: :useragent<chrome_linux>; my @urls = < http://www.perl.org http://www.perl6.org http://www.yahoo.com >; loop { my @promises; for @urls -> $url { @promises.push: Promise .start({ $ua.get: $url }) .then({ put "Got {.result.^name}" }); } await @promises; } Running this program sometimes works a little and often if fails in diverse and curious ways. I couldn't get it to fail unless I used a Promise: $ perl6 cycle.p6 Got HTTP::Response Segmentation fault: 11 $ perl6 cycle.p6 Got HTTP::Response Illegal instruction: 4 $ perl6 cycle.p6 Got HTTP::Response An operation first awaited: in block <unit> at cycle.p6 line 20 Died with the exception: Tried to get the result of a broken Promise in block at cycle.p6 line 18 Original exception: Please install IO::Socket::SSL in order to fetch https sites: Failed to seek in filehandle: 22 in method get-connection at /Users/brian/Desktop/lib/HTTP/UserAgent.pm (HTTP::UserAgent) line 350 in method get-connection at /Users/brian/Desktop/lib/HTTP/UserAgent.pm (HTTP::UserAgent) line 343 in method request at /Users/brian/Desktop/lib/HTTP/UserAgent.pm (HTTP::UserAgent) line 156 in method request at /Users/brian/Desktop/lib/HTTP/UserAgent.pm (HTTP::UserAgent) line 176 in method get at /Users/brian/Desktop/lib/HTTP/UserAgent.pm (HTTP::UserAgent) line 102 in method get at /Users/brian/Desktop/lib/HTTP/UserAgent.pm (HTTP::UserAgent) line 105 in block at cycle.p6 line 17 $ perl6 cycle.p6 Got HTTP::Response moar(77217,0x70001052c000) malloc: *** error for object 0x7fd7b89a4af0: pointer being freed was not allocated *** set a breakpoint in malloc_error_break to debug Abort trap: 6 Here's the setup $ perl6 -v This is Rakudo Star version 2018.01 built on MoarVM version 2018.01 implementing Perl 6.c. $ uname -a Darwin . 17.4.0 Darwin Kernel Version 17.4.0: Sun Dec 17 09:19:54 PST 2017; root:xnu-4570.41.2~1/RELEASE_X86_64 x86_64