Skip Menu |

This queue is for tickets about the Net-Async-HTTP CPAN distribution.

Report information
The Basics
Id: 100066
Status: resolved
Priority: 0/
Queue: Net-Async-HTTP

People
Owner: Nobody in particular
Requestors: leonerd-cpan [...] leonerd.org.uk
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 0.36
Fixed in: 0.37



Subject: Pipelining stalls if ->done propagates an error from the caller
If the code invoked by the ->done response Future dies and an error propagates, it stalls the pipeline causing all further requests to sit pending forever. $ cat pipeline-break-fail.pl #!/usr/bin/perl use strict; use warnings; use IO::Async::Loop; use Net::Async::HTTP; IO::Async::Loop->new->add( my $http = Net::Async::HTTP->new ); my @f = map { $http->GET( "http://www.google.com/" ) ->on_done( sub { die "STALL" } ) ->else_done() } 1 .. 3; eval { $f[0]->get } or warn "f[0] failed: $@"; eval { $f[1]->get } or warn "f[1] failed: $@"; eval { $f[2]->get } or warn "f[2] failed: $@"; $ perl pipeline-break-fail.pl f[0] failed: STALL at pipeline-break-fail.pl line 12. ^C -- Paul Evans
I forget quite at which commit, but this is now working fine in 0.37 -- Paul Evans