dutyu opened a new issue, #20175: URL: https://github.com/apache/doris/issues/20175
### Search before asking - [X] I had searched in the [issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no similar issues. ### Version 1.1.5 ### What's Wrong? Our cluster met a BE crash error, the crash stack of BE like this: ``` start time: Mon May 15 10:58:41 CST 2023 WARNING: Logging before InitGoogleLogging() is written to STDERR I0515 10:58:41.876210 23729 env.cpp:46] Env init successfully. *** Query id: 0-0 *** *** Aborted at 1684121744 (unix time) try "date -d @1684121744" if you are using GNU date *** *** SIGFPE integer divide by zero (@0x561293e86d43) received by PID 23729 (TID 0x7f4ba5c97700) from PID 18446744071896067395; stack trace: *** 0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, siginfo_t*, void*) at /mnt/disk2/ygl/code/github/apache-doris/be/src/common/signal_handler.h:428 1# 0x00007F4CE9043400 in /lib64/libc.so.6 2# std::_Function_handler<unsigned int (doris::Tuple*, long), doris::OlapTablePartitionParam::init()::{lambda(doris::Tuple*, long)#1}>::_M_invoke(std::_Any_data const&, doris::Tuple*&&, long&&) at /mnt/disk2/ygl/installs/ldbtools/include/c++/11/bits/std_function.h:291 3# doris::OlapTablePartitionParam::find_tablet(doris::Tuple*, doris::OlapTablePartition const&) const at /mnt/disk2/ygl/code/github/apache-doris/be/src/exec/tablet_info.cpp:313 4# doris::stream_load::OlapTableSink::send(doris::RuntimeState*, doris::RowBatch*) at /mnt/disk2/ygl/code/github/apache-doris/be/src/exec/tablet_sink.cpp:1006 5# doris::PlanFragmentExecutor::open_internal() at /mnt/disk2/ygl/code/github/apache-doris/be/src/runtime/plan_fragment_executor.cpp:411 6# doris::PlanFragmentExecutor::open() at /mnt/disk2/ygl/code/github/apache-doris/be/src/runtime/plan_fragment_executor.cpp:261 7# doris::FragmentExecState::execute() at /mnt/disk2/ygl/code/github/apache-doris/be/src/runtime/fragment_mgr.cpp:249 8# doris::FragmentMgr::_exec_actual(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>) at /mnt/disk2/ygl/code/github/apache-doris/be/src/runtime/fragment_mgr.cpp:487 9# std::_Function_handler<void (), std::_Bind_result<void, void (doris::FragmentMgr::*(doris::FragmentMgr*, std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>))(std::shared_ptr<doris::FragmentExecState>, std::function<void (doris::PlanFragmentExecutor*)>)> >::_M_invoke(std::_Any_data const&) at /mnt/disk2/ygl/installs/ldbtools/include/c++/11/bits/std_function.h:291 10# doris::ThreadPool::dispatch_thread() at /mnt/disk2/ygl/code/github/apache-doris/be/src/util/threadpool.cpp:578 11# doris::Thread::supervise_thread(void*) at /mnt/disk2/ygl/code/github/apache-doris/be/src/util/thread.cpp:407 12# start_thread in /lib64/libpthread.so.0 13# clone in /lib64/libc.so.6 ``` And the partition info likes this:  The table schema is: ```sql CREATE TABLE `ycy_dx_cd_cw_md_tmk` ( `_partition_` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT "", `xxx` double NULL COMMENT "xxx", ... ... ... ) ENGINE=OLAP DUPLICATE KEY(`_partition_`) COMMENT "OLAP" PARTITION BY RANGE(`_partition_`) (PARTITION p20230526 VALUES [('2023-05-26 00:00:00'), ('2023-05-27 00:00:00')), PARTITION p20230527 VALUES [('2023-05-27 00:00:00'), ('2023-05-28 00:00:00')), PARTITION p20230528 VALUES [('2023-05-28 00:00:00'), ('2023-05-29 00:00:00')), PARTITION p20230529 VALUES [('2023-05-29 00:00:00'), ('2023-05-30 00:00:00')), PARTITION p20230530 VALUES [('2023-05-30 00:00:00'), ('2023-05-31 00:00:00')), PARTITION p20230531 VALUES [('2023-05-31 00:00:00'), ('2023-06-01 00:00:00')), PARTITION p20230601 VALUES [('2023-06-01 00:00:00'), ('2023-06-02 00:00:00'))) DISTRIBUTED BY RANDOM BUCKETS 32 PROPERTIES ( "replication_allocation" = "tag.location.default: 3", "dynamic_partition.enable" = "true", "dynamic_partition.time_unit" = "DAY", "dynamic_partition.time_zone" = "Asia/Shanghai", "dynamic_partition.start" = "-3", "dynamic_partition.end" = "3", "dynamic_partition.prefix" = "p", "dynamic_partition.replication_allocation" = "tag.location.default: 3", "dynamic_partition.buckets" = "32", "dynamic_partition.create_history_partition" = "false", "dynamic_partition.history_partition_num" = "-1", "dynamic_partition.hot_partition_num" = "0", "dynamic_partition.reserved_history_periods" = "NULL", "in_memory" = "false", "storage_format" = "V2", "compression" = "ZSTD" ); ``` Cause the bucket size of some partitions has changed to 0, so it triggered a divide by zero op, but it's very wired, we do not execute any ops to midify the bucket size. Maybe this is a thread-safe problem? ### What You Expected? Bucket size should be the value that we've defined at create table ddl. ### How to Reproduce? _No response_ ### Anything Else? Although i can not find the root cause of this problem, but i will submit a pr to check the bucket size when new partition being created to avoid BE crash problem. ### Are you willing to submit PR? - [X] Yes I am willing to submit a PR! ### Code of Conduct - [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- 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: commits-unsubscr...@doris.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org