liuxinwang commented on issue #27856:
URL: https://github.com/apache/doris/issues/27856#issuecomment-1880357721

   > > 支持从1.2.7.1回退到1.2.1吗 @LemonLiTree
   > 
   > 为什么回退?1.2.7 之后再上2.0 。
   
   问题一:
   升级到1.2.7.1 当使用sum(常量 * decimal类型) 计算结果不准确,下面是一个复现示例:
   ```sql
   CREATE TABLE `decimal_test` (
     `id` bigint(20) NOT NULL COMMENT '',
     `amount` decimal(20, 2) NOT NULL  COMMENT ''
   )ENGINE=OLAP
   UNIQUE KEY(`id`)
   COMMENT ''
   DISTRIBUTED BY HASH(`id`) BUCKETS 10
   PROPERTIES (
   "replication_allocation" = "tag.location.default: 1",
   "in_memory" = "false",
   "storage_format" = "V2",
   "enable_unique_key_merge_on_write" = "true",
   "disable_auto_compaction" = "false"
   );
   
   insert into decimal_test(id, amount)values(1, 1.22),(2, 3.44),(3, 69.90),(4, 
99.90),(5, 339.22),
   (6, 518.80),(7, 49.90),(8, 69.90),(9, 149.70),(10, 57.87),(11, 139.70),(12, 
12.97),(13, 63.85),(14, 79.62);
   
   
   select sum(1 * amount), sum(amount) from decimal_test;
   ```
   result
   ```
   sum1,sum2
   "1655.9900000000005","1655.990000000"
   
   ```
   
   问题二:crash更加频繁
   ```
   -- be.out
   start time: Fri Jan  5 16:44:58 CST 2024
   SLF4J: Class path contains multiple SLF4J bindings.
   SLF4J: Found binding in 
[jar:file:/opt/doris/apache-doris-1.2.7.1-bin-x64/be/lib/hadoop_hdfs/common/lib/slf4j-reload4j-1.7.36.jar!/org/slf4j/impl/StaticLoggerBinder.class]
   SLF4J: Found binding in 
[jar:file:/opt/doris/apache-doris-1.2.7.1-bin-x64/be/lib/java-udf-jar-with-dependencies.jar!/org/slf4j/impl/StaticLoggerBinder.class]
   SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an 
explanation.
   SLF4J: Actual binding is of type [org.slf4j.impl.Reload4jLoggerFactory]
   *** Query id: 4e5ecef32dd64922-9284a93062f74b26 ***
   *** Aborted at 1704461231 (unix time) try "date -d @1704461231" if you are 
using GNU date ***
   *** Current BE git commitID: Unknown ***
   *** SIGSEGV address not mapped to object (@0x0) received by PID 32605 (TID 
0x7f09250d4700) from PID 0; stack trace: ***
    0# doris::signal::(anonymous namespace)::FailureSignalHandler(int, 
siginfo_t*, void*) at /root/doris/be/src/common/signal_handler.h:420
    1# os::Linux::chained_handler(int, siginfo*, void*) in 
/usr/local/jdk/jre/lib/amd64/server/libjvm.so
    2# JVM_handle_linux_signal in /usr/local/jdk/jre/lib/amd64/server/libjvm.so
    3# signalHandler(int, siginfo*, void*) in 
/usr/local/jdk/jre/lib/amd64/server/libjvm.so
    4# 0x00007F0B28E3C400 in /lib64/libc.so.6
    5# je_arena_dalloc_promoted at ../src/arena.c:1604
    6# __pthread_create_2_1 in /lib64/libpthread.so.0
    7# doris::Thread::start_thread(std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> > const&, 
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > 
const&, std::function<void ()> const&, unsigned long, 
scoped_refptr<doris::Thread>*) at /root/doris/be/src/util/thread.cpp:408
    8# doris::ThreadPool::create_thread() at 
/root/doris/be/src/util/threadpool.cpp:604
    9# doris::ThreadPool::do_submit(std::shared_ptr<doris::Runnable>, 
doris::ThreadPoolToken*) at /root/doris/be/src/util/threadpool.cpp:444
   10# doris::ThreadPool::submit_func(std::function<void ()>) at 
/root/doris/be/src/util/threadpool.cpp:349
   11# doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams 
const&, std::function<void (doris::PlanFragmentExecutor*)>) at 
/var/local/ldb-toolchain/include/c++/11/bits/std_function.h:328
   12# doris::FragmentMgr::exec_plan_fragment(doris::TExecPlanFragmentParams 
const&) at /root/doris/be/src/runtime/fragment_mgr.cpp:564
   13# 
doris::PInternalServiceImpl::_exec_plan_fragment_impl(std::__cxx11::basic_string<char,
 std::char_traits<char>, std::allocator<char> > const&, 
doris::PFragmentRequestVersion, bool) at 
/root/doris/be/src/service/internal_service.cpp:480
   14# 
doris::PInternalServiceImpl::_exec_plan_fragment_in_pthread(google::protobuf::RpcController*,
 doris::PExecPlanFragmentRequest const*, doris::PExecPlanFragmentResult*, 
google::protobuf::Closure*) at 
/root/doris/be/src/service/internal_service.cpp:254
   15# doris::PriorityThreadPool::work_thread(int) at 
/root/doris/be/src/util/priority_thread_pool.hpp:146
   16# execute_native_thread_routine at 
../../../../../libstdc++-v3/src/c++11/thread.cc:84
   17# start_thread in /lib64/libpthread.so.0
   18# clone in /lib64/libc.so.6
   ```


-- 
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

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

Reply via email to