0AyanamiRei opened a new pull request, #68275:
URL: https://github.com/apache/doris/pull/68275
### What problem does this PR solve?
Issue Number: N/A
Related PR: selectdb/selectdb-core#12025, apache/doris#60953
Problem Summary: With enable_memtable_on_sink_node enabled, destinations
report final tablet results to their last closing streams, which can belong
to different source BEs. A source receiving one failed replica and no local
success records incorrectly rejects an INSERT even when two replicas succeed.
Count distinct failed backend IDs together with version-gap backends and
reject only when known failures exceed the tolerated count. Continue sending
successful commit records to FE for its aggregate quorum check.
Add table-scoped fault injection to force results to different sources,
three unit tests, and an INSERT regression with generated expected output.
On master, save session variables through SELECT @@ to support experimental
variables. Keep test tables and compare row counts and both set differences.
### Release note
Fix false INSERT quorum failures when replica results are reported to
different source BEs while preserving version-gap handling.
### Check List (For Author)
- Test: Unit Test / Regression test / Manual test
- BUILD_TYPE=ASAN ./build.sh --be --fe -j48: passed
- ./run-be-ut.sh --run --filter='TestVTabletWriterV2.*' -j48: 19 passed
- test_insert_quorum_split_reports and
test_multi_replica_fault_injection:
2 suites passed on a local one-FE/three-BE cluster; 2048 rows, 0
differences
- clang-format 16, build hygiene, and git diff --check passed
- clang-tidy blocked by pre-existing unmatched NOLINTEND in
core/types.h:576;
final diagnostics contain no warnings on modified lines
- Behavior changed: Yes. Missing local success reports no longer cause false
quorum failures; write failures and version gaps remain counted.
- Does this need documentation: No
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]