On Wed, 09 Nov 2016 08:51:08 -0800, [email protected] wrote:
>
> I can only reproduce it on camelia and the issue happens when
> connecting to an IPv6 address:
>
> m: await
> IO::Socket::Async.connect("2600:3c03::f03c:91ff:fe91:d028", 80).then:
> -> $p { if $p.status { given $p.result { .print: "GET / HTTP/1.0\n\n";
> react { whenever .Supply { .say } } } } }
> rakudo-moar b46a62: OUTPUT«===SORRY!===bindexpayload needs a
> VMException»
>
> On other boxes, the code either succeeds, gives "unable to resolve
> hostname" or gives "network is unreachable"
>
> IRC conversation: https://irclog.perlgeek.de/perl6/2016-11-
> 09#i_13539836
>
Golfed it all the way down to:
my $p = Promise.new;
$p.break("OH NOES");
await $p;
And fixed it, and added a test in S17-promise/basic.t. Seems it was a
regression when I improved error reporting for Promises a while ago to present
the backtraces of both the original error and the one where the result of the
Promise was acquired. To do that I used rethrow, but that got upset and spewed
an internal error (the one seen here) if given an exception that was never
previously thrown. Now it just copes.
/jnthn