Skip to content

branch-4.1: [fix](be) Fix exchange receiver dependency race #62777#62885

Merged
yiguolei merged 1 commit intobranch-4.1from
auto-pick-62777-branch-4.1
Apr 29, 2026
Merged

branch-4.1: [fix](be) Fix exchange receiver dependency race #62777#62885
yiguolei merged 1 commit intobranch-4.1from
auto-pick-62777-branch-4.1

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

Cherry-picked from #62777

### What problem does this PR solve?

Issue Number: None

Related PR: None

Problem Summary: Data or EOS could arrive after the receiver is
registered but before its source dependency is installed. In that
window, ready notification was lost and the exchange source could remain
blocked. Recheck the queue state when setting the dependency and protect
channel turn-off checks with the instance mutex.

### Release note

Fix a potential query hang caused by an exchange receiver dependency
ready-notification race.

### Check List (For Author)

- Test: Unit Test / Manual test
- Unit Test: ./run-be-ut.sh --run
--filter=DataStreamRecvrTest.TestEosBeforeSetDependency:DataStreamRecvrTest.TestDataBeforeSetDependencyWithRemainingSenders
    - Manual test: build-support/check-format.sh
- Static analysis attempted: build-support/run-clang-tidy.sh --build-dir
be/ut_build_ASAN failed because clang-tidy could not analyze the files
due to environment/pre-existing diagnostics, including missing stddef.h
from system/libstdc++ headers and an existing unmatched NOLINTEND in
be/src/core/types.h
- Behavior changed: Yes. Exchange source dependencies are now marked
ready if queued data or EOS arrived before set_dependency().
- Does this need documentation: No

### What problem does this PR solve?

Issue Number: close #xxx

Related PR: #xxx

Problem Summary:

### Release note

None

### Check List (For Author)

- Test <!-- At least one of them must be included. -->
    - [ ] Regression test
    - [ ] Unit Test
    - [ ] Manual test (add detailed scripts or steps below)
    - [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
        - [ ] Previous test can cover this change.
        - [ ] No code files have been changed.
        - [ ] Other reason <!-- Add your reason?  -->

- Behavior changed:
    - [ ] No.
    - [ ] Yes. <!-- Explain the behavior change -->

- Does this need documentation?
    - [ ] No.
- [ ] Yes. <!-- Add document PR link here. eg:
apache/doris-website#1214 -->

### Check List (For Reviewer who merge this PR)

- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label <!-- Add branch pick label that this PR
should merge into -->
@github-actions github-actions Bot requested a review from yiguolei as a code owner April 28, 2026 01:40
@yiguolei
Copy link
Copy Markdown
Contributor

skip buildall

@github-actions
Copy link
Copy Markdown
Contributor Author

PR approved by at least one committer and no changes requested.

@github-actions github-actions Bot added approved Indicates a PR has been approved by one committer. reviewed labels Apr 29, 2026
@github-actions
Copy link
Copy Markdown
Contributor Author

PR approved by anyone and no changes requested.

@yiguolei yiguolei closed this Apr 29, 2026
@yiguolei yiguolei reopened this Apr 29, 2026
@yiguolei yiguolei merged commit eb796cf into branch-4.1 Apr 29, 2026
31 of 33 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by one committer. reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants