Skip to content

Added new APIs to Spinquic #5892

Open
gaurav2699 wants to merge 16 commits intomainfrom
spinquic_newapi
Open

Added new APIs to Spinquic #5892
gaurav2699 wants to merge 16 commits intomainfrom
spinquic_newapi

Conversation

@gaurav2699
Copy link
Copy Markdown
Contributor

Description

SpinQuic updated to cover the new/experimental APIs:

ConnectionPoolCreate
RegistrationClose2
App-provided receive buffers APIs: StreamProvideReceiveBuffers_Describe the purpose of and changes within this Pull Request._

Testing

Do any existing tests cover this change? Are new tests needed?

Documentation

Is there any documentation impact for this change?

@gaurav2699 gaurav2699 requested a review from a team as a code owner March 24, 2026 13:34
@gaurav2699 gaurav2699 changed the title Addesd new APIs to Spinquic Added new APIs to Spinquic Mar 24, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 24, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 85.65%. Comparing base (5e99ea7) to head (b4e261f).
⚠️ Report is 13 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5892      +/-   ##
==========================================
+ Coverage   84.73%   85.65%   +0.91%     
==========================================
  Files          60       60              
  Lines       18751    18754       +3     
==========================================
+ Hits        15889    16064     +175     
+ Misses       2862     2690     -172     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp
Comment thread src/tools/spin/spinquic.cpp Outdated
Copy link
Copy Markdown
Collaborator

@guhetier guhetier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be nice to also add a call to StreamProvideReceiveBuffers when a new stream is notified to a connection.

Comment thread .github/workflows/validate-linux-packages-reuse.yml Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Copy link
Copy Markdown
Collaborator

@guhetier guhetier left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks largely good, but the failures in the CI are the sign of either a bug in MsQuic the new test is finding, or that the spintest is doing something wrong.

Please address it before we merge this PR (in a different PR if the issue is a MsQuic bug)

@gaurav2699
Copy link
Copy Markdown
Contributor Author

Looks largely good, but the failures in the CI are the sign of either a bug in MsQuic the new test is finding, or that the spintest is doing something wrong.

Please address it before we merge this PR (in a different PR if the issue is a MsQuic bug)

Pulling the latest changes seem to have removed the issue. Maybe due to the latest xdp removal effort.

guhetier
guhetier previously approved these changes Apr 15, 2026
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment thread src/tools/spin/spinquic.cpp Outdated
Comment on lines +1243 to +1244
// connection count bounded. Otherwise teardown blows the
// watchdog under Debug + alloc_fail.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why? That doesn't seem obvious, and we should probably fix the teardown if it can take that long?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The dumps show three spin_client threads simultaneously inside RtlDebugFreeHeap, specifically one of them blocked on RtlEnterCriticalSectionContended waiting for the heap CS, while the other two walk free lists. Every free() on the Windows debug heap takes a per-heap critical section, so N concurrent closing connections serialize on it

@gaurav2699 gaurav2699 closed this Apr 21, 2026
@gaurav2699 gaurav2699 reopened this Apr 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants