Skip to content

Commit

Permalink
[fix](upgrade) fix version check failure of window_funnel when upgrad…
Browse files Browse the repository at this point in the history
…ing (apache#41542)

## Proposed changes

Issue Number: close #xxx

Fix fix version check failure of window_funnel when upgrading from 2.1.6
and higher version to latest branch 2.1.
```
02:49:13   F20240930 02:47:48.546983  7581 block.cpp:89] Check failed: BeExecVersionManager::check_be_exec_version(be_exec_version)
02:49:13   *** Check failure stack trace: ***
02:49:13       @     0x564640041856  google::LogMessage::SendToLog()
02:49:13       @     0x56464003e2a0  google::LogMessage::Flush()
02:49:13       @     0x564640042099  google::LogMessageFatal::~LogMessageFatal()
02:49:13       @     0x56463922d106  doris::vectorized::Block::deserialize()
02:49:13       @     0x5646390a82bf  doris::vectorized::WindowFunnelState<>::read()
02:49:13       @     0x5646390a6889  doris::vectorized::IAggregateFunctionDataHelper<>::deserialize_and_merge()
02:49:13       @     0x5646390acdc3  doris::vectorized::IAggregateFunctionHelper<>::deserialize_and_merge_from_column_range()
02:49:13       @     0x56463fa77152  doris::pipeline::AggSinkLocalState::_merge_without_key()
02:49:13       @     0x56463fa9d114  doris::pipeline::AggSinkLocalState::Executor<>::execute()
02:49:13       @     0x56463fa78569  doris::pipeline::AggSinkOperatorX::sink()
02:49:13       @     0x564640013296  doris::pipeline::PipelineXTask::execute()
02:49:13       @     0x56464001d41c  doris::pipeline::TaskScheduler::_do_work()
02:49:13       @     0x56463663e078  doris::ThreadPool::dispatch_thread()
02:49:13       @     0x564636634901  doris::Thread::supervise_thread()
02:49:13       @     0x7fb64cf58ac3  (unknown)
02:49:13       @     0x7fb64cfea850  (unknown)
02:49:13       @              (nil)  (unknown)
02:49:13   *** Query id: b0cd194940184766-961c310e833e92b1 ***
02:49:13   *** is nereids: 1 ***
02:49:13   *** tablet id: 0 ***
02:49:13   *** Aborted at 1727635668 (unix time) try "date -d @1727635668" if you are using GNU date ***
02:49:13   *** Current BE git commitID: 653e315 ***
02:49:13   *** SIGABRT unknown detail explain (@0x1648) received by PID 5704 (TID 7581 OR 0x7fb354a9a640) from PID 5704; stack trace: ***
02:49:13    0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /home/zcp/repo_center/doris_branch-2.1/doris/be/src/common/signal_handler.h:421
02:49:13    1# 0x00007FB64CF06520 in /lib/x86_64-linux-gnu/libc.so.6
02:49:13    2# pthread_kill at ./nptl/pthread_kill.c:89
02:49:13    3# raise at ../sysdeps/posix/raise.c:27
02:49:13    4# abort at ./stdlib/abort.c:81
02:49:13    5# 0x000056464004C06D in /mnt/hdd01/ci/compatibility-deploy/be/lib/doris_be
02:49:13    6# 0x000056464003E76A in /mnt/hdd01/ci/compatibility-deploy/be/lib/doris_be
02:49:13    7# google::LogMessage::SendToLog() in /mnt/hdd01/ci/compatibility-deploy/be/lib/doris_be
02:49:13    8# google::LogMessage::Flush() in /mnt/hdd01/ci/compatibility-deploy/be/lib/doris_be
02:49:13    9# google::LogMessageFatal::~LogMessageFatal() in /mnt/hdd01/ci/compatibility-deploy/be/lib/doris_be
02:49:13   10# doris::vectorized::Block::deserialize(doris::PBlock const&) at /home/zcp/repo_center/doris_branch-2.1/doris/be/src/vec/core/block.cpp:113
02:49:13   11# doris::vectorized::WindowFunnelState<(doris::vectorized::TypeIndex)14, long>::read(doris::vectorized::BufferReadable&) at /home/zcp/repo_center/doris_branch-2.1/doris/be/src/vec/aggregate_functions/aggregate_function_window_funnel.h:363
02:49:13   12# doris::vectorized::IAggregateFunctionDataHelper<doris::vectorized::WindowFunnelState<(doris::vectorized::TypeIndex)14, long>, doris::vectorized::AggregateFunctionWindowFunnel<(doris::vectorized::TypeIndex)14, long> >::deserialize_and_merge(char*, char*, doris::vectorized::BufferReadable&, doris::vectorized::Arena*) const at /home/zcp/repo_center/doris_branch-2.1/doris/be/src/vec/aggregate_functions/aggregate_function.h:517
02:49:13   13# doris::vectorized::IAggregateFunctionHelper<doris::vectorized::AggregateFunctionNullVariadicInline<doris::vectorized::AggregateFunctionWindowFunnel<(doris::vectorized::TypeIndex)14, long>, false> >::deserialize_and_merge_from_column_range(char*, doris::vectorized::IColumn const&, unsigned long, unsigned long, doris::vectorized::Arena*) const at /home/zcp/repo_center/doris_branch-2.1/doris/be/src/vec/aggregate_functions/aggregate_function.h:465
02:49:13   14# doris::pipeline::AggSinkLocalState::_merge_without_key(doris::vectorized::Block*) at /home/zcp/repo_center/doris_branch-2.1/doris/be/src/pipeline/exec/aggregation_sink_operator.cpp:389
02:49:13   15# doris::pipeline::AggSinkLocalState::Executor<true, true>::execute(doris::pipeline::AggSinkLocalState*, doris::vectorized::Block*) at /home/zcp/repo_center/doris_branch-2.1/doris/be/src/pipeline/exec/aggregation_sink_operator.h:73
02:49:13   16# doris::pipeline::AggSinkOperatorX::sink(doris::RuntimeState*, doris::vectorized::Block*, bool) at /home/zcp/repo_center/doris_branch-2.1/doris/be/src/pipeline/exec/aggregation_sink_operator.cpp:744
02:49:13   17# doris::pipeline::PipelineXTask::execute(bool*) at /home/zcp/repo_center/doris_branch-2.1/doris/be/src/pipeline/pipeline_x/pipeline_x_task.cpp:332
02:49:13   18# doris::pipeline::TaskScheduler::_do_work(unsigned long) at /home/zcp/repo_center/doris_branch-2.1/doris/be/src/pipeline/task_scheduler.cpp:347
02:49:13   19# doris::ThreadPool::dispatch_thread() in /mnt/hdd01/ci/compatibility-deploy/be/lib/doris_be
02:49:13   20# doris::Thread::supervise_thread(void*) at /home/zcp/repo_center/doris_branch-2.1/doris/be/src/util/thread.cpp:499
02:49:13   21# start_thread at ./nptl/pthread_create.c:442
02:49:13   22# 0x00007FB64CFEA850 at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:83
02:49:13   [2024-09-30 02:49:13,147 __main__:796] [INFO]: 172.20.50.73 last coredump sql: 2024-09-30 02:48:18,328 [query] Query b0cd194940184766-961c310e833e92b1 1 times with new query id: 2e0e00de0e7548dd-95f9abc9d8d11c3a
```
  • Loading branch information
jacktengg authored Oct 8, 2024
1 parent ca59c85 commit c24ff2f
Showing 1 changed file with 5 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ struct WindowFunnelState {
DateV2Value<DateTimeV2ValueType>, VecDateTimeValue>;
int event_count = 0;
int64_t window;
int version {};
bool enable_mode;
WindowFunnelMode window_funnel_mode;
mutable vectorized::MutableBlock mutable_block;
Expand All @@ -97,8 +98,9 @@ struct WindowFunnelState {
sort_description[0].direction = 1;
sort_description[0].nulls_direction = -1;
}
WindowFunnelState(int arg_event_count) : WindowFunnelState() {
WindowFunnelState(int arg_event_count, int arg_version) : WindowFunnelState() {
event_count = arg_event_count;
version = arg_version;
event_columns_datas.resize(event_count);
auto timestamp_column = ColumnVector<NativeType>::create();

Expand Down Expand Up @@ -308,8 +310,7 @@ struct WindowFunnelState {
std::string buff;
Block block = mutable_block.to_block();
status = block.serialize(
BeExecVersionManager::get_newest_version(), &pblock, &uncompressed_bytes,
&compressed_bytes,
version, &pblock, &uncompressed_bytes, &compressed_bytes,
segment_v2::CompressionTypePB::ZSTD); // ZSTD for better compression ratio
block.clear_column_data();
if (!status.ok()) {
Expand Down Expand Up @@ -374,7 +375,7 @@ class AggregateFunctionWindowFunnel

void create(AggregateDataPtr __restrict place) const override {
auto data = new (place) WindowFunnelState<TYPE_INDEX, NativeType>(
IAggregateFunction::get_argument_types().size() - 3);
IAggregateFunction::get_argument_types().size() - 3, version);
/// support window funnel mode from 2.0. See `BeExecVersionManager::max_be_exec_version`
data->enable_mode = version >= 3;
}
Expand Down

0 comments on commit c24ff2f

Please sign in to comment.