Reintroduce progressive HTTP read timeout support - #3469
Conversation
Co-authored-by: zchuango <zchuang185@gmail.com>
|
@wwbmmm @chenBright Please carefully review this feature. We have conducted multiple rounds of tests both online and offline, and no abnormal issues have been found. For details, see the following test screenshots and evidence. Additional validation evidence for commit Local stress testing
The attached archive contains:
Archive: progressive-read-timeout-test-evidence-fc865456.zip Archive SHA256:
GitHub Actions rerunsFive of six complete Linux workflow attempts passed. Attempt #5 failed only in the existing The other 10 Linux jobs in that attempt passed. This PR does not modify RDMA Validation ScreenshotsGitHub Actions attempt #6: all Linux jobs passed
|



What problem does this PR solve?
Issue Number: Related to #3133, follow-up pr #3409 and #3453
Problem Summary:
Progressive HTTP response reads currently have no independent idle timeout after
ReadProgressiveAttachmentBy()is called. A reader may therefore wait indefinitely when the peer stops sending body data while keeping the connection open.PR #3409 introduced progressive-read timeout support, but post-merge CI exposed a lifecycle and synchronization problem around the timer callback and reader completion path. In particular, the timer callback could race with reader completion/error delivery, which made
HttpTest.progressive_read_timeout_preserves_reader_errorunstable and could replace the reader's original error with the timeout status.This PR restores the feature with explicit synchronization and independent timer-state ownership.
What is changed and the side effects?
Changed:
Side effects:
Performance effects:
Breaking backward compatibility:
Check List: