Description
Version
master
Platform
Darwin xxx 22.5.0 Darwin Kernel Version 22.5.0: Mon Apr 24 20:51:50 PDT 2023; root:xnu-
Description
See curl/curl#11203 for the user report and find my analysis in the comments.
tl;dr
Calling hyper_executor_poll()
triggers read of a response from the network IO layer, but does not return a HYPER_TASK_RESPONSE
. Instead it returns HYPER_TASK_EMPTY
.
The response sits undelivered inside the hyper stack. No socket activity is happening and curl's transfer loop checks much later again on the transfer, calling hyper_executor_poll()
again. This does not do any network IO, but delivers the HYPER_TASK_RESPONSE
right away.
This delays curls transfers significantly.
Please advice if you regard this as a bug in hyper or advice how curl shall reliably work around this behaviour. Thanks!