| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
TopicRetryableStream.start() is called from the shared transport scheduler on every reconnect. With directWrite enabled, WriteStreamDirectFactory resolved the target partition and its location synchronously inside createNewStream: lookupPartitionId() joined a probe stream future (1 min deadline) and lookupLocation() joined describeTopic() (1 min deadline). Each reconnect of an unresponsive destination could therefore occupy a scheduler thread for up to two minutes. The shared scheduler is sized max(cores / 2, 2) and is also used by discovery, session pools, retry contexts and operation tray, so a handful of stalled writers could stall the whole transport: session acquire timeouts stop firing and discovery ticks stop running. Make createNewStream() return CompletableFuture and compose the partition and location lookups instead of joining them, so no shared scheduler thread is held while a stream is being created. Since stream creation is now asynchronous, close() may happen while it is in progress. TopicRetryableStream handles that by re-checking isClosed after publishing the new stream: close() sets the volatile flag before clearing the stream reference, so a creation that wins the race always observes the flag and drops the stream without starting it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is 92.07921% with 8 lines in your changes missing coverage. Please review. @@ Coverage Diff @@
## master #726 +/- ##
============================================
- Coverage 74.54% 74.53% -0.01%
+ Complexity 3637 3632 -5
============================================
Files 392 391 -1
Lines 16493 16523 +30
Branches 1738 1745 +7
============================================
+ Hits 12294 12316 +22
- Misses 3591 3593 +2
- Partials 608 614 +6 ☔ View full report in Codecov by Harness.
|
Sorry, something went wrong.
AI Review SummaryVerdict: ✅ No critical issues found Critical issuesNo critical issues found. Other findings
The core change itself (non-blocking stream creation, Result-based factory contract, @Nullable handling in ReaderImpl) looks sound, the new async/close/creation-failure scenarios are covered by tests, and the full topic module test suite passes. This review was generated automatically. Critical issues require attention; other findings are advisory. |
Sorry, something went wrong.
|
Analysis performed by claude, z-ai/glm-5.3-flash. |
Sorry, something went wrong.
AI Review SummaryVerdict: ❌ 1 critical issue(s) found Critical issues
Other findings
This review was generated automatically. Critical issues require attention; other findings are advisory. |
Sorry, something went wrong.
|
Analysis performed by claude, z-ai/glm-5.3-flash. |
Sorry, something went wrong.
There was a problem hiding this comment.
Verdict: ✅ No critical issues found
No critical issues found.
This review was generated automatically. Critical issues require attention; other findings are advisory.
If this comment was useful, please give it a 👍 — it helps us improve the review bot.
Sorry, something went wrong.
|
Analysis performed by claude, z-ai/glm-5.3-flash. |
Sorry, something went wrong.
AI Review SummaryVerdict: ✅ No critical issues found Critical issuesNo critical issues found. Other findings
The core state-machine rework (State with creation future + stream reference) was traced through the close/fail/retry/async-creation interleavings and reviewed against WriterImpl, ReaderImpl, WriteSession, and both stream factories; the topic module test suite passes on the merge commit. This review was generated automatically. Critical issues require attention; other findings are advisory. |
Sorry, something went wrong.
|
Analysis performed by claude, z-ai/glm-5.3-flash. |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
No description provided.