Skip to content

response only available on next poll #3237

Open
@icing

Description

@icing

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-ffiArea: ffi (C API)C-performanceCategory: performance. This is making existing behavior go faster.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions