-
-
Notifications
You must be signed in to change notification settings - Fork 176
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
fix: order of operations when resetting buffer #553
Conversation
Caution Review failedThe pull request is closed. WalkthroughThe recent changes to the Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant Server
participant BufferPool
Client->>Server: Send Request with Buffer
Server->>BufferPool: Get Buffer
Server->>Buffer: Use Buffer
Server->>Buffer: Reset Buffer
Server->>BufferPool: Return Buffer
BufferPool-->>Server: Buffer Returned
Assessment against linked issues
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #553 +/- ##
=======================================
Coverage 92.76% 92.76%
=======================================
Files 22 22
Lines 3883 3883
=======================================
Hits 3602 3602
Misses 236 236
Partials 45 45 ☔ View full report in Codecov by Sentry. |
This fixes an order-of-operations bug that was due to copy/paste and removal of
defer
statements, however defers execute in reverse order while the copied statements execute in order. This means the buffer could be sent back into the pool before getting reset, causing a potential race on the next read. This was a silly mistake that should have been caught with the race detector during tests but was unfortunately missed. Sorry about that!Fixes #552
Summary by CodeRabbit