Subject: | Raace between SSL connect failure and connection pipeline reuse |
Using max_connections_per_host > 1.
IO::Async::Future=HASH(0x377e388) is already done at /home/leo/lib/perl5/Net/Async/HTTP/Connection.pm line 115 and cannot be ->fail'ed at /home/leo/lib/perl5/Net/Async/HTTP.pm line 406.
The log just before this reads:
[Na:HTTP::Connection{localhost:8002,fd=14}<-Na:HTTP<-Na:Matrix] DONE remaining in-flight=0
[Na:HTTP::Connection{localhost:8002,fd=14}<-Na:HTTP<-Na:Matrix] READY pipelined
...
I suspect therefore what happened was:
1. ->request starts a new connect attempt
2. Existing outstanding request finishes, hits READY pipelined
3. Existing now-idle connection gets reused for next request
4. $loop->connect now fails, attempting to fail the Future
->fail now dies because step 3 resolved it.
--
Paul Evans