Skip to content
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

[test](move-memtable) add more fault injection cases for writer v2 #39169

Merged
merged 1 commit into from
Aug 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 9 additions & 6 deletions be/src/vec/sink/writer/vtablet_writer_v2.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,13 +200,11 @@ Status VTabletWriterV2::_init(RuntimeState* state, RuntimeProfile* profile) {
return Status::InternalError("unknown destination tuple descriptor, id = {}",
_tuple_desc_id);
}
DBUG_EXECUTE_IF("VTabletWriterV2._init._vec_output_expr_ctxs_not_equal_output_tuple_slot", {
return Status::InvalidArgument(
"output_tuple_slot_num {} should be equal to output_expr_num {}",
_output_tuple_desc->slots().size() + 1, _vec_output_expr_ctxs.size());
});
auto output_tuple_desc_slots_size = _output_tuple_desc->slots().size();
DBUG_EXECUTE_IF("VTabletWriterV2._init._vec_output_expr_ctxs_not_equal_output_tuple_slot",
{ output_tuple_desc_slots_size++; });
if (!_vec_output_expr_ctxs.empty() &&
_output_tuple_desc->slots().size() != _vec_output_expr_ctxs.size()) {
_vec_output_expr_ctxs.size() != output_tuple_desc_slots_size) {
LOG(WARNING) << "output tuple slot num should be equal to num of output exprs, "
<< "output_tuple_slot_num " << _output_tuple_desc->slots().size()
<< " output_expr_num " << _vec_output_expr_ctxs.size();
Expand Down Expand Up @@ -289,6 +287,8 @@ Status VTabletWriterV2::_open_streams_to_backend(int64_t dst_id, Streams& stream
}
auto idle_timeout_ms = _state->execution_timeout() * 1000;
std::vector<PTabletID>& tablets_for_schema = _indexes_from_node[node_info->id];
DBUG_EXECUTE_IF("VTabletWriterV2._open_streams_to_backend.no_schema_when_open_streams",
{ tablets_for_schema.clear(); });
int fault_injection_skip_cnt = 0;
for (auto& stream : streams) {
DBUG_EXECUTE_IF("VTabletWriterV2._open_streams_to_backend.one_stream_open_failure", {
Expand Down Expand Up @@ -482,6 +482,8 @@ Status VTabletWriterV2::_write_memtable(std::shared_ptr<vectorized::Block> block
break;
}
}
DBUG_EXECUTE_IF("VTabletWriterV2._write_memtable.index_not_found",
{ index_not_found = true; });
if (index_not_found) {
LOG(WARNING) << "index " << rows.index_id
<< " not found in schema, load_id=" << print_id(_load_id);
Expand Down Expand Up @@ -675,6 +677,7 @@ void VTabletWriterV2::_close_wait(bool incremental) {
}
int64_t remain_ms = static_cast<int64_t>(_state->execution_timeout()) * 1000 -
_timeout_watch.elapsed_time() / 1000 / 1000;
DBUG_EXECUTE_IF("VTabletWriterV2._close_wait.load_timeout", { remain_ms = 0; });
if (remain_ms <= 0) {
LOG(WARNING) << "load timed out before close waiting, load_id="
<< print_id(_load_id);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,18 @@ suite("test_writer_v2_fault_injection", "nonConcurrent") {
load_with_injection("VTabletWriterV2._init._vec_output_expr_ctxs_not_equal_output_tuple_slot", "should be equal to output_expr_num")
// VTabletWriterV2 node_info is null
load_with_injection("VTabletWriterV2._open_streams_to_backend.node_info_null", "Unknown node")
// VTabletWriterV2 do not get tablet schema on open_streams
load_with_injection("VTabletWriterV2._open_streams_to_backend.no_schema_when_open_streams", "success")
// VTabletWriterV2 tablet_location is null
load_with_injection("VTabletWriterV2._build_tablet_node_mapping.tablet_location_null", "unknown tablet location")
// VTabletWriterV2 location is null
load_with_injection("VTabletWriterV2._select_streams.location_null", "failed to open DeltaWriter for tablet")
// VTabletWriterV2 index not found
load_with_injection("VTabletWriterV2._write_memtable.index_not_found", "failed to open DeltaWriter for tablet")
// VTabletWriterV2 cancel
load_with_injection("VTabletWriterV2.close.cancel", "load cancel")
// VTabletWriterV2 load timeout before close_wait
load_with_injection("VTabletWriterV2._close_wait.load_timeout", "load timed out before close waiting")
// DeltaWriterV2 stream_size is 0
load_with_injection("DeltaWriterV2.init.stream_size", "failed to find tablet schema")

Expand Down
Loading