github-actions[bot] commented on code in PR #62661:
URL: https://github.com/apache/doris/pull/62661#discussion_r3414747874
##########
be/src/exec/sink/writer/vtablet_writer.cpp:
##########
@@ -777,13 +889,17 @@ Status VNodeChannel::add_block(Block* block, const
Payload* payload) {
}
SCOPED_RAW_TIMER(&_stat.append_node_channel_ns);
- st = block->append_to_block_by_selector(_cur_mutable_block.get(),
*(payload->first));
+ st = block->append_to_block_by_selector(_cur_mutable_block.get(),
*payload->row_ids);
if (!st.ok()) {
_cancel_with_msg(fmt::format("{}, err: {}", channel_info(),
st.to_string()));
return st;
}
Review Comment:
This needs a receiver-version gate before adaptive mode starts sending
partition-ids-only add-block RPCs. In a rolling BE upgrade, a new sender can
route an adaptive random bucket to an old receiver, for example when a selected
bucket or rollup-index bucket owner is still on the old BE. This branch then
omits `tablet_ids` and relies on `is_receiver_side_random_bucket`, but old
receivers ignore that new protobuf field and still execute the old
`BaseTabletsChannel::_write_block_data()` `CHECK(block.rows() ==
request.tablet_ids_size())`. With a non-empty block and zero `tablet_ids`, the
old BE aborts or the load fails. Please only enable this mode when every
possible tablet-writer receiver supports the new protocol, or fall back to
sending `tablet_ids` to older receivers. This is distinct from the existing
old-FE/`local_bucket_seqs` compatibility thread because it is BE-to-BE
add-block payload compatibility.
--
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]