Fine tune async propagation for lettuce 5#11607
Conversation
This comment has been minimized.
This comment has been minimized.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: bfcbd9b949
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 09b2c415ad
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 21d36aeb34
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
21d36ae to
0e807c1
Compare
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0e807c1f9a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
What Does This Do
This PR blocks async propagations around the connection boundary in lettuce. Previously, the
latestDepTesthad astrictTraceWritesset tofalsesince continuations were leaked from few tests.On a failed Redis connection,
RedisHandshakeHandler.channelRegisteredregisters athenAccepton the handshake future, which is then abandoned.So the captured continuation is never resolved. Under strict trace writes this discards spans, which is why the Lettuce tests carried a
useStrictTraceWrites(false)workaround.Disabling the async propagation on this little spot prevents this.
Follows the temporal capture events happened in failed tests
gantt title Scope continuations (30 total, 1 leaked, 0 late, 0 double) dateFormat x axisFormat %Lms section Test worker cap #0 AbstractRedisClient.initializeChannelAsync :milestone, 0, 0 cap #14 AbstractRedisAsyncCommands.dispatch :milestone, 6, 6 cap #19 AbstractRedisClient.initializeChannelAsync :milestone, 10, 10 cap #23 DefaultConnectionFuture.thenApply :milestone, 10, 10 section lettuce-nioEventLoop-10-1 cap #9 RedisHandshakeHandler.channelRegistered :milestone, 2, 2 #9 fin RedisHandshakeHandler.succeed :done, 6, 7 #14 fin AsyncCommand.completeResult :done, 7, 8 section lettuce-nioEventLoop-13-1 #19 fin AbstractRedisClient.lambda$initializeChannelAsync0$6 :done, 12, 13 #28 LEAK cap RedisHandshakeHandler.channelRegistered :crit, 10, 12 cap #29 PromiseTask.<init> :milestone, 10, 10 #29 fin PromiseTask.run :done, 11, 12Motivation
Additional Notes
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issue/merge. You can also:/merge --commit-message "..."/merge -c/merge -f --reason "reason"; please use this judiciously, as some checks do not run at the PR-level (note: the PR still needs to be mergeable, this will only skip the pre-merge build)Jira ticket: [PROJ-IDENT]