This is an automated email from the ASF dual-hosted git repository.

yiguolei pushed a commit to branch branch-2.1
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-2.1 by this push:
     new c24ff2ff81f [fix](upgrade) fix version check failure of window_funnel 
when upgrading (#41542)
c24ff2ff81f is described below

commit c24ff2ff81f3b189c7ab7f8becad5ed83ab9b13a
Author: TengJianPing <[email protected]>
AuthorDate: Tue Oct 8 17:13:33 2024 +0800

    [fix](upgrade) fix version check failure of window_funnel when upgrading 
(#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: 653e315ba5 ***
    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
    ```
---
 .../vec/aggregate_functions/aggregate_function_window_funnel.h   | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/be/src/vec/aggregate_functions/aggregate_function_window_funnel.h 
b/be/src/vec/aggregate_functions/aggregate_function_window_funnel.h
index e6697968403..0b6e2cbabcd 100644
--- a/be/src/vec/aggregate_functions/aggregate_function_window_funnel.h
+++ b/be/src/vec/aggregate_functions/aggregate_function_window_funnel.h
@@ -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;
@@ -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();
 
@@ -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()) {
@@ -374,7 +375,7 @@ public:
 
     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;
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to