Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SOCKETFUNCTION receives zero fd and socket_data for HTTP/3 connections #10593

Closed
sfionov opened this issue Feb 23, 2023 · 1 comment
Closed
Assignees
Labels
HTTP/3 h3 or quic related

Comments

@sfionov
Copy link

sfionov commented Feb 23, 2023

That leads to stalled reads.

I did this

  1. Set CURLMOPT_SOCKETFUNCTION to start polling on socket
  2. Start request

socketfunction sometimes receives zero fd to poll, and also zero socket_data for it, with "IN" action.

As result, HTTP/3 connection becoming very slow because it can do reads only when some timeout is fired.

I expected the following

socketfunction NEVER receives zero fd to poll (why to poll stdin?), and also zero socket_data for it.

curl/libcurl version

libcurl 7.88.1 with ngtcp2 0.13.1 and nghttp2 0.7.1

It worked ok on libcurl 7.85 + ngtcp2 0.9.0

operating system

macOS 12.6

@sfionov sfionov changed the title CURLOPT_SOCKETFUNCTION receives zero fd and socket_data for HTTP/3 connections SOCKETFUNCTION receives zero fd and socket_data for HTTP/3 connections Feb 23, 2023
@bagder bagder added the HTTP/3 h3 or quic related label Feb 23, 2023
@icing icing self-assigned this Feb 23, 2023
@icing
Copy link
Contributor

icing commented Feb 23, 2023

Please see #10595 for the fix and description of this issue.

@bagder bagder closed this as completed in f6fe54e Feb 24, 2023
bch pushed a commit to bch/curl that referenced this issue Jul 19, 2023
... causing macOS to hand out 0 as next socket handle and failing on
further operations.

Reported-by: Sergey Fionov
Fixes curl#10593
Closes curl#10595
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
HTTP/3 h3 or quic related
Development

No branches or pull requests

3 participants