Skip to content

HttpClient creates Quic threads even if HTTP/3 is not in use #74629

Closed

Description

@wfurt
  1. Create simple console app with HTTP and run simple http1.1 request on Windows 11 or Server 22.
  2. look at application threads.

image

Application crates 2x threads per core even if HTTP/3 and Quic are not in used. This was originally reported on legacy system with 54 cores. That will create 100+ threads ... for nothing.

We should figure out how to make Quic.IsSupported cheap and defer thread creation until needed.
This will impact legacy app that has no clue tor intention to use Quic or HTTP/3.

Activity

  1. ghost added
    untriagedNew issue has not been triaged by the area owner
    on Aug 26, 2022
  2. rzikm commented on Aug 26, 2022

    @rzikm
    Member

    I think we can simply try opening and closing the API registration (that should deallocate the internal MsQuic threadpool), and then lazily reopen it when we actually intend to use it.

  3. added this to the 7.0.0 milestone on Aug 28, 2022
  4. ghost removed
    untriagedNew issue has not been triaged by the area owner
    on Aug 28, 2022
  5. self-assigned this
    on Aug 29, 2022
  6. ghost added
    in-prThere is an active PR which will close this issue when it is merged
    on Aug 29, 2022
  7. karelz commented on Aug 30, 2022

    @karelz
    Member

    Triage: This contributes to 1MB per core Working set regression on Windows 2022/Win11+ and on Linux when msquic is present.
    We should fix it in 7.0.

  8. added and removed
    tenet-compatibilityIncompatibility with previous versions or .NET Framework
    on Aug 30, 2022
  9. 35 remaining items

  10. karelz commented on Sep 13, 2022

    @karelz
    Member

    Open questions:

  11. ghost removed
    in-prThere is an active PR which will close this issue when it is merged
    on Sep 23, 2022
  12. karelz commented on Sep 23, 2022

    @karelz
    Member

    Fixed in main (8.0) in PRs #75163 and #75441 and in 7.0 (GA) in PR #75521 and in 6.0.15 in PR #80785.

  13. ghost locked as resolved and limited conversation to collaborators on Oct 23, 2022
  14. karelz commented on Jan 20, 2023

    @karelz
    Member

    We have customers impacted on 6.0 as well - only via Kestrel. Reopening for 6.0.x backport.

  15. reopened this on Jan 20, 2023
  16. modified the milestones: 7.0.0, 6.0.x on Jan 20, 2023
  17. assigned and unassigned on Jan 20, 2023
  18. ManickaP commented on Feb 15, 2023

    @ManickaP
    Member

    Closing as #80785 is merged

  19. karelz commented on Feb 21, 2023

    @karelz
    Member

    Fixed also in 6.0.15 in PR #80785 -- see #74629 (comment) for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions