-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[BugFix] Fix the problem of SinkIOBuffer getting stuck #40874
Conversation
Signed-off-by: trueeyu <lxhhust350@qq.com>
Signed-off-by: trueeyu <lxhhust350@qq.com>
Signed-off-by: trueeyu <lxhhust350@qq.com>
Signed-off-by: trueeyu <lxhhust350@qq.com>
return; | ||
} | ||
|
||
if (_is_cancelled && !_is_finished) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
when arrive this line _is_finished is always true. it seems check !_is_finished is unnecessary
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also think it's unnecessary, but I don't understand his deep meaning here, and I'm afraid that there will be other problems if I change it, later caixiaohua will completely reconstruct it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
[FE Incremental Coverage Report]✅ pass : 0 / 0 (0%) |
[BE Incremental Coverage Report]✅ pass : 16 / 19 (84.21%) file detail
|
@Mergifyio backport branch-3.2 |
@Mergifyio backport branch-3.1 |
@Mergifyio backport branch-3.0 |
@Mergifyio backport branch-2.5 |
✅ Backports have been created
|
✅ Backports have been created
|
✅ Backports have been created
|
✅ Backports have been created
|
Why I'm doing: If _cancelled is true and io queue is executing the last data chunk, the _pending_num_tasks maybe 0/1/2. So the subsequent sentinel requests cannot be executed either. 0: The io task is already pushed to queue and run, but _pending_num_tasks is not +1 now. 2: The sentinel request is pushed back to queue, and ++_pending_num_tasks. What I'm doing: Extract public code and put it into SinkIOBuffer Add a SinkIOBuffer test framework Move sentinel request before cancel check. Rmove the dcheck of _pending_num_tasks. Signed-off-by: trueeyu <lxhhust350@qq.com> (cherry picked from commit 50987d3) # Conflicts: # be/src/exec/pipeline/sink/export_sink_operator.cpp # be/src/exec/pipeline/sink/file_sink_operator.cpp # be/src/exec/pipeline/sink/mysql_table_sink_operator.cpp # be/test/exec/sink/sink_io_buffer_test.cpp
Why I'm doing: If _cancelled is true and io queue is executing the last data chunk, the _pending_num_tasks maybe 0/1/2. So the subsequent sentinel requests cannot be executed either. 0: The io task is already pushed to queue and run, but _pending_num_tasks is not +1 now. 2: The sentinel request is pushed back to queue, and ++_pending_num_tasks. What I'm doing: Extract public code and put it into SinkIOBuffer Add a SinkIOBuffer test framework Move sentinel request before cancel check. Rmove the dcheck of _pending_num_tasks. Signed-off-by: trueeyu <lxhhust350@qq.com> (cherry picked from commit 50987d3) # Conflicts: # be/src/exec/CMakeLists.txt
Why I'm doing: If _cancelled is true and io queue is executing the last data chunk, the _pending_num_tasks maybe 0/1/2. So the subsequent sentinel requests cannot be executed either. 0: The io task is already pushed to queue and run, but _pending_num_tasks is not +1 now. 2: The sentinel request is pushed back to queue, and ++_pending_num_tasks. What I'm doing: Extract public code and put it into SinkIOBuffer Add a SinkIOBuffer test framework Move sentinel request before cancel check. Rmove the dcheck of _pending_num_tasks. Signed-off-by: trueeyu <lxhhust350@qq.com> (cherry picked from commit 50987d3) # Conflicts: # be/src/exec/CMakeLists.txt # be/src/exec/pipeline/sink/export_sink_operator.cpp # be/src/exec/pipeline/sink/file_sink_operator.cpp # be/src/exec/pipeline/sink/mysql_table_sink_operator.cpp
Why I'm doing: If _cancelled is true and io queue is executing the last data chunk, the _pending_num_tasks maybe 0/1/2. So the subsequent sentinel requests cannot be executed either. 0: The io task is already pushed to queue and run, but _pending_num_tasks is not +1 now. 2: The sentinel request is pushed back to queue, and ++_pending_num_tasks. What I'm doing: Extract public code and put it into SinkIOBuffer Add a SinkIOBuffer test framework Move sentinel request before cancel check. Rmove the dcheck of _pending_num_tasks. Signed-off-by: trueeyu <lxhhust350@qq.com> (cherry picked from commit 50987d3) # Conflicts: # be/src/exec/CMakeLists.txt # be/src/exec/pipeline/sink/export_sink_operator.cpp # be/src/exec/pipeline/sink/file_sink_operator.cpp # be/src/exec/pipeline/sink/mysql_table_sink_operator.cpp
…) (#40927) Signed-off-by: trueeyu <lxhhust350@qq.com> Co-authored-by: trueeyu <lxhhust350@qq.com>
…) (#40928) Signed-off-by: trueeyu <lxhhust350@qq.com> Co-authored-by: trueeyu <lxhhust350@qq.com>
…) (#40929) Signed-off-by: trueeyu <lxhhust350@qq.com> Co-authored-by: trueeyu <lxhhust350@qq.com>
…) (#40926) Signed-off-by: trueeyu <lxhhust350@qq.com> Co-authored-by: trueeyu <lxhhust350@qq.com>
Why I'm doing:
If
_cancelled
is true and io queue is executing the last data chunk, the_pending_num_tasks
maybe 0/1/2. So the subsequent sentinel requests cannot be executed either.0: The io task is already pushed to queue and run, but _pending_num_tasks is not +1 now.
2: The sentinel request is pushed back to queue, and ++_pending_num_tasks.
What I'm doing:
What type of PR is this:
Does this PR entail a change in behavior?
If yes, please specify the type of change:
Checklist:
Bugfix cherry-pick branch check: