Skip to content

[Chore](third-party) upgrade thrift from 0.13 to 0.16 - #17202

Merged
BiteTheDDDDt merged 1 commit into
apache:masterfrom
BiteTheDDDDt:dev_0224
Mar 10, 2023
Merged

[Chore](third-party) upgrade thrift from 0.13 to 0.16#17202
BiteTheDDDDt merged 1 commit into
apache:masterfrom
BiteTheDDDDt:dev_0224

Conversation

@BiteTheDDDDt

@BiteTheDDDDtBiteTheDDDDt commented Feb 27, 2023

Copy link
Copy Markdown
Contributor

Proposed changes

I found that thrift often has some crash under asan, I want to try to upgrade it to the latest version and see if the problem still occurs.
There is thrift's release notes https://github.com/apache/thrift/blob/master/CHANGES.md

=================================================================
==3313527==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7f620d10adb0 at pc 0x560af1186b17 bp 0x7f620d10ad80 sp 0x7f620d10a528WRITE of size 24 at 0x7f620d10adb0 thread T861 (EvHttpServer [w)
#00x560af1186b16 in __interceptor_sigaltstack.part.0 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7049b16)
#10x560af11ec8bf in __asan::PlatformUnpoisonStacks() (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x70af8bf)
#20x560af11f2224 in __asan_handle_no_return (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x70b5224)
#30x560af38641bf in __gnu_cxx::new_allocator<char>::~new_allocator() /var/local/ldb-toolchain/include/c++/11/ext/new_allocator.h:89
#40x560af38641bf in std::allocator<char>::~allocator() /var/local/ldb-toolchain/include/c++/11/bits/allocator.h:162
#50x560af38641bf in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider::~_Alloc_hider() /var/local/ldb-toolchain/include/c++/11/bits/basic_string.h:150
#60x560af38641bf in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() /var/local/ldb-toolchain/include/c++/11/bits/basic_string.h:658
#70x560af38641bf in doris::FrontendServiceClient::recv_streamLoadPut(doris::TStreamLoadPutResult&) /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:6420
#80x560af3864369 in doris::FrontendServiceClient::streamLoadPut(doris::TStreamLoadPutResult&, doris::TStreamLoadPutRequest const&) /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:6367
#90x560af4220b56 in operator() /root/doris/be/src/http/action/stream_load.cpp:584
#100x560af4220b56 in __invoke_impl<void, doris::StreamLoadAction::_process_put(doris::HttpRequest*, doris::StreamLoadContext*)::<lambda(doris::FrontendServiceConnection&)>&, doris::ClientConnection<doris::FrontendServiceClient>&> /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61
#110x560af4220b56 in __invoke_r<void, doris::StreamLoadAction::_process_put(doris::HttpRequest*, doris::StreamLoadContext*)::<lambda(doris::FrontendServiceConnection&)>&, doris::ClientConnection<doris::FrontendServiceClient>&> /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111
#120x560af4220b56 in _M_invoke /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291
#130x560af325f612 in std::function<void (doris::ClientConnection<doris::FrontendServiceClient>&)>::operator()(doris::ClientConnection<doris::FrontendServiceClient>&) const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560
#140x560af325f612 in doris::Status doris::ThriftRpcHelper::rpc<doris::FrontendServiceClient>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::function<void (doris::ClientConnection<doris::FrontendServiceClient>&)>, int) /root/doris/be/src/util/thrift_rpc_helper.cpp:59
#150x560af4231bef in doris::Status doris::ThriftRpcHelper::rpc<doris::FrontendServiceClient>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::function<void (doris::ClientConnection<doris::FrontendServiceClient>&)>) /root/doris/be/src/util/thrift_rpc_helper.h:40
#160x560af4231bef in doris::StreamLoadAction::_process_put(doris::HttpRequest*, doris::StreamLoadContext*) /root/doris/be/src/http/action/stream_load.cpp:584
#170x560af4235da4 in doris::StreamLoadAction::_on_header(doris::HttpRequest*, doris::StreamLoadContext*) /root/doris/be/src/http/action/stream_load.cpp:341
#180x560af4241834 in doris::StreamLoadAction::on_header(doris::HttpRequest*) /root/doris/be/src/http/action/stream_load.cpp:242
#190x560af416de47 in doris::EvHttpServer::on_header(evhttp_request*) /root/doris/be/src/http/ev_http_server.cpp:242
#200x560af416e259 in on_header /root/doris/be/src/http/ev_http_server.cpp:64
#210x560b07a898b9 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x1d94c8b9)
#220x560b07a6bf50 in bufferevent_run_readcb_ (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x1d92ef50)
#230x560b07a8ddf2 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x1d950df2)
#240x560b07a74d58 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x1d937d58)
#250x560b07a753d6 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x1d9383d6)
#260x560b07a77a07 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x1d93aa07)
#270x560af416737a in operator() /root/doris/be/src/http/ev_http_server.cpp:105
#280x560af416737a in __invoke_impl<void, doris::EvHttpServer::start()::<lambda()>&> /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61
#290x560af416737a in __invoke_r<void, doris::EvHttpServer::start()::<lambda()>&> /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111
#300x560af416737a in _M_invoke /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291
#310x560af32fc1c2 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560
#320x560af32fc1c2 in doris::FunctionRunnable::run() /root/doris/be/src/util/threadpool.cpp:46
#330x560af32fa0a0 in doris::ThreadPool::dispatch_thread() /root/doris/be/src/util/threadpool.cpp:529
#340x560af32fbd77 in void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74
#350x560af32fbd77 in std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:96
#360x560af32fbd77 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /var/local/ldb-toolchain/include/c++/11/functional:420
#370x560af32fbd77 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() /var/local/ldb-toolchain/include/c++/11/functional:503
#380x560af32fbd77 in void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61
#390x560af32fbd77 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111
#400x560af32fbd77 in std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291
#410x560af32ce334 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560
#420x560af32ce334 in doris::Thread::supervise_thread(void*) /root/doris/be/src/util/thread.cpp:453
#430x7f64402a0608 in start_thread /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477
#440x7f6440076132 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f132)
Address 0x7f620d10adb0 is located in stack of thread T861 (EvHttpServer [w) at offset 208 in frame
#00x560af1e8ad3f in apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport, apache::thrift::protocol::TNetworkBigEndian>::readMessageBegin(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) /var/local/thirdparty/installed/include/thrift/protocol/TBinaryProtocol.tcc:200
This frame has 7object(s):
[48, 49) '<unknown>'
[64, 68) 'theBytes' (line 372)
[80, 84) 'theBytes' (line 372)
[96, 100) 'theBytes' (line 372)
[112, 116) 'theBytes' (line 372)
[128, 160) '<unknown>'
[192, 193) 'b' (line 350) <== Memory access at offset 208 overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
(longjmp and C++ exceptions *are* supported)
Thread T861 (EvHttpServer [w) created by T0 here:
#00x560af118b061 in pthread_create (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x704e061)
#10x560af32ca1d1 in 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>*) /root/doris/be/src/util/thread.cpp:407
#20x560af32e7aaa in doris::Status doris::Thread::create<void (doris::ThreadPool::*)(), doris::ThreadPool*>(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&, void (doris::ThreadPool::* const&)(), doris::ThreadPool* const&, scoped_refptr<doris::Thread>*) /root/doris/be/src/util/thread.h:57
#30x560af32e7aaa in doris::ThreadPool::create_thread() /root/doris/be/src/util/threadpool.cpp:598
#40x560af32f1633 in doris::ThreadPool::init() /root/doris/be/src/util/threadpool.cpp:257
#50x560af4168efc in doris::Status doris::ThreadPoolBuilder::build<doris::ThreadPool>(std::unique_ptr<doris::ThreadPool, std::default_delete<doris::ThreadPool> >*) const /root/doris/be/src/util/threadpool.h:114
#60x560af4168efc in doris::EvHttpServer::start() /root/doris/be/src/http/ev_http_server.cpp:100
#70x560af2ecb33f in doris::HttpService::start() /root/doris/be/src/service/http_service.cpp:191
#80x560af1238d53 in main /root/doris/be/src/service/doris_main.cpp:496
#90x7f643ff7b082 in __libc_start_main ../csu/libc-start.c:308SUMMARY: AddressSanitizer: stack-buffer-overflow (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7049b16) in __interceptor_sigaltstack.part.0
Shadow bytes around the buggy address:
0x0fecc1a19560: 000000000000 f1 f1 f1 f1 f1 f1 01 f2 00000x0fecc1a19570: 0000 f3 f3 f3 f3 000000000000000000000x0fecc1a19580: 000000000000000000000000000000000x0fecc1a19590: 000000000000000000000000 f1 f1 f1 f1
0x0fecc1a195a0: f1 f1 01 f2 04 f2 04 f2 04 f2 04 f2 00000000
=>0x0fecc1a195b0: f2 f2 f2 f2 01 f3[f3]f3 00000000000000000x0fecc1a195c0: 00000000000000000000 f1 f1 f1 f1 01 f2
0x0fecc1a195d0: f8 f2 01 f2 04 f2 04 f2 0000 f2 f2 0000 f2 f2
0x0fecc1a195e0: 0000 f2 f2 0000 f2 f2 000000 f2 f2 f2 f2 f2
0x0fecc1a195f0: 00000000 f2 f2 f2 f2 00000000 f2 f2 f2 f2
0x0fecc1a19600: 000000000000 f3 f3 f3 f3 000000000000
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==3313527==ABORTING
start time: Fri 24 Feb 2023 01:47:08 PM CST
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0224 13:47:08.619928 3332520 doris_main.cpp:324] enable_fuzzy_mode is true, set fuzzy configs
=================================================================
==3332520==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7f261aa5d8c8 at pc 0x555d91c56b17 bp 0x7f261aa5d890 sp 0x7f261aa5d038
WRITE of size 24 at 0x7f261aa5d8c8 thread T611 (TaskWorkerPool.)
#00x555d91c56b16 in __interceptor_sigaltstack.part.0 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7049b16)
#10x555d91cbc8bf in __asan::PlatformUnpoisonStacks() (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x70af8bf)
#20x555d91cc2224 in __asan_handle_no_return (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x70b5224)
#30x555d946706d1 in apache::thrift::protocol::TProtocol::decrementOutputRecursionDepth() /var/local/thirdparty/installed/include/thrift/protocol/TProtocol.h:576
#40x555d946706d1 in apache::thrift::protocol::TOutputRecursionTracker::~TOutputRecursionTracker() /var/local/thirdparty/installed/include/thrift/protocol/TProtocol.h:648
#50x555d946706d1 in doris::TTabletInfo::write(apache::thrift::protocol::TProtocol*) const /root/doris/gensrc/build/gen_cpp/MasterService_types.cpp:483
#60x555d94666b0c in doris::TTablet::write(apache::thrift::protocol::TProtocol*) const /root/doris/gensrc/build/gen_cpp/MasterService_types.cpp:1215
#70x555d9466d15a in doris::TReportRequest::write(apache::thrift::protocol::TProtocol*) const /root/doris/gensrc/build/gen_cpp/MasterService_types.cpp:1930
#80x555d942bf17b in doris::FrontendService_report_pargs::write(apache::thrift::protocol::TProtocol*) const /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:1204
#90x555d942f866c in doris::FrontendServiceClient::send_report(doris::TReportRequest const&) /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:5566
#100x555d9431f360 in doris::FrontendServiceClient::report(doris::TMasterResult&, doris::TReportRequest const&) /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:5555
#110x555d9294362c in doris::MasterServerClient::report(doris::TReportRequest const&, doris::TMasterResult*) /root/doris/be/src/agent/utils.cpp:109
#120x555d928d4e74 in doris::TaskWorkerPool::_handle_report(doris::TReportRequest&, doris::TaskWorkerPool::ReportType) /root/doris/be/src/agent/task_worker_pool.cpp:1651
#130x555d928dbbf5 in doris::TaskWorkerPool::_report_tablet_worker_thread_callback() /root/doris/be/src/agent/task_worker_pool.cpp:1376
#140x555d92923c21 in void std::__invoke_impl<void, void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&>(std::__invoke_memfun_deref, void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74
#150x555d92923c21 in std::enable_if<is_invocable_r_v<void, void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&>, void>::type std::__invoke_r<void, void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&>(void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111
#160x555d92923c21 in void std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /var/local/ldb-toolchain/include/c++/11/functional:570
#170x555d92923c21 in void std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>::operator()<>() /var/local/ldb-toolchain/include/c++/11/functional:629
#180x555d92923c21 in void std::__invoke_impl<void, std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&>(std::__invoke_other, std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61
#190x555d92923c21 in std::enable_if<is_invocable_r_v<void, std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&>, void>::type std::__invoke_r<void, std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&>(std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111
#200x555d92923c21 in std::_Function_handler<void (), std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291
#210x555d93dcc1c2 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560
#220x555d93dcc1c2 in doris::FunctionRunnable::run() /root/doris/be/src/util/threadpool.cpp:46
#230x555d93dca0a0 in doris::ThreadPool::dispatch_thread() /root/doris/be/src/util/threadpool.cpp:529
#240x555d93dcbd77 in void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74
#250x555d93dcbd77 in std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:96
#260x555d93dcbd77 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /var/local/ldb-toolchain/include/c++/11/functional:420
#270x555d93dcbd77 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() /var/local/ldb-toolchain/include/c++/11/functional:503
#280x555d93dcbd77 in void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61
#290x555d93dcbd77 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111
#300x555d93dcbd77 in std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291
#310x555d93d9e334 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560
#320x555d93d9e334 in doris::Thread::supervise_thread(void*) /root/doris/be/src/util/thread.cpp:453
#330x7f27bf731608 in start_thread /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477
#340x7f27bf507132 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f132)
Address 0x7f261aa5d8c8 is located in stack of thread T611 (TaskWorkerPool.) at offset 40 in frame
#00x555d929457ef in apache::thrift::protocol::TVirtualProtocol<apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport, apache::thrift::protocol::TNetworkBigEndian>, apache::thrift::protocol::TProtocolDefaults>::writeI64_virt(long) /var/local/thirdparty/installed/include/thrift/protocol/TVirtualProtocol.h:380
This frame has 1object(s):
[32, 40) 'net' <== Memory access at offset 40 overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
(longjmp and C++ exceptions *are* supported)
Thread T611 (TaskWorkerPool.) created by T0 here:
#00x555d91c5b061 in pthread_create (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x704e061)
#10x555d93d9a1d1 in 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>*) /root/doris/be/src/util/thread.cpp:407
#20x555d93db7aaa in doris::Status doris::Thread::create<void (doris::ThreadPool::*)(), doris::ThreadPool*>(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&, void (doris::ThreadPool::* const&)(), doris::ThreadPool* const&, scoped_refptr<doris::Thread>*) /root/doris/be/src/util/thread.h:57
#30x555d93db7aaa in doris::ThreadPool::create_thread() /root/doris/be/src/util/threadpool.cpp:598
#40x555d93dc1633 in doris::ThreadPool::init() /root/doris/be/src/util/threadpool.cpp:257
#50x555d928cf7b0 in doris::Status doris::ThreadPoolBuilder::build<doris::ThreadPool>(std::unique_ptr<doris::ThreadPool, std::default_delete<doris::ThreadPool> >*) const /root/doris/be/src/util/threadpool.h:114
#60x555d928cf7b0 in doris::TaskWorkerPool::start() /root/doris/be/src/agent/task_worker_pool.cpp:223
#70x555d9396e75a in doris::AgentServer::AgentServer(doris::ExecEnv*, doris::TMasterInfo const&) /root/doris/be/src/agent/agent_server.cpp:96
#80x555d93948f1b in doris::BackendService::BackendService(doris::ExecEnv*) /root/doris/be/src/service/backend_service.cpp:68
#90x555d93952eec in doris::BackendService::create_service(doris::ExecEnv*, int, doris::ThriftServer**) /root/doris/be/src/service/backend_service.cpp:71
#100x555d91d085cb in main /root/doris/be/src/service/doris_main.cpp:463
#110x7f27bf40c082 in __libc_start_main ../csu/libc-start.c:308SUMMARY: AddressSanitizer: stack-buffer-overflow (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7049b16) in __interceptor_sigaltstack.part.0
Shadow bytes around the buggy address:
0x0fe543543ac0: 000000000000000000000000000000000x0fe543543ad0: 000000000000000000000000000000000x0fe543543ae0: 000000000000000000000000000000000x0fe543543af0: 000000000000000000000000000000000x0fe543543b00: 00000000000000000000000000000000
=>0x0fe543543b10: 00000000 f1 f1 f1 f1 00[f3]f3 f3 000000000x0fe543543b20: 000000000000000000000000000000000x0fe543543b30: f1 f1 f1 f1 f1 f1 01 f2 00 f2 f2 f2 00 f2 f2 f2
0x0fe543543b40: 00 f2 f2 f2 00 f2 f2 f2 00 f3 f3 f3 000000000x0fe543543b50: 000000000000000000000000000000000x0fe543543b60: f1 f1 f1 f1 f1 f1 01 f2 00 f2 f2 f2 00 f2 f2 f2
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==3332520==ABORTING
=================================================================
==3537813==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7f784aa162b0 at pc 0x55bde672eb17 bp 0x7f784aa16280 sp 0x7f784aa15a28
WRITE of size 24 at 0x7f784aa162b0 thread T858 (EvHttpServer [w)
#00x55bde672eb16 in __interceptor_sigaltstack.part.0 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7eb9b16)
#10x55bde67948bf in __asan::PlatformUnpoisonStacks() (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7f1f8bf)
#20x55bde679a224 in __asan_handle_no_return (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7f25224)
#30x55bde8e13477 in __gnu_cxx::new_allocator<char>::~new_allocator() /var/local/ldb-toolchain/include/c++/11/ext/new_allocator.h:89
#40x55bde8e13477 in std::allocator<char>::~allocator() /var/local/ldb-toolchain/include/c++/11/bits/allocator.h:162
#50x55bde8e13477 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Alloc_hider::~_Alloc_hider() /var/local/ldb-toolchain/include/c++/11/bits/basic_string.h:150
#60x55bde8e13477 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() /var/local/ldb-toolchain/include/c++/11/bits/basic_string.h:658
#70x55bde8e13477 in doris::FrontendServiceClient::recv_loadTxnPreCommit(doris::TLoadTxnCommitResult&) /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:6130
#80x55bde8e13621 in doris::FrontendServiceClient::loadTxnPreCommit(doris::TLoadTxnCommitResult&, doris::TLoadTxnCommitRequest const&) /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:6077
#90x55bde82f62cf in operator() /root/doris/be/src/runtime/stream_load/stream_load_executor.cpp:183
#100x55bde82f62cf in __invoke_impl<void, doris::StreamLoadExecutor::pre_commit_txn(doris::StreamLoadContext*)::<lambda(doris::FrontendServiceConnection&)>&, doris::ClientConnection<doris::FrontendServiceClient>&> /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61
#110x55bde82f62cf in __invoke_r<void, doris::StreamLoadExecutor::pre_commit_txn(doris::StreamLoadContext*)::<lambda(doris::FrontendServiceConnection&)>&, doris::ClientConnection<doris::FrontendServiceClient>&> /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111
#120x55bde82f62cf in _M_invoke /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291
#130x55bde8816062 in std::function<void (doris::ClientConnection<doris::FrontendServiceClient>&)>::operator()(doris::ClientConnection<doris::FrontendServiceClient>&) const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560
#140x55bde8816062 in doris::Status doris::ThriftRpcHelper::rpc<doris::FrontendServiceClient>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, std::function<void (doris::ClientConnection<doris::FrontendServiceClient>&)>, int) /root/doris/be/src/util/thrift_rpc_helper.cpp:59
#150x55bde82ff907 in doris::StreamLoadExecutor::pre_commit_txn(doris::StreamLoadContext*) /root/doris/be/src/runtime/stream_load/stream_load_executor.cpp:183
#160x55bde97dd273 in doris::StreamLoadAction::_handle(std::shared_ptr<doris::StreamLoadContext>) /root/doris/be/src/http/action/stream_load.cpp:210
#170x55bde97e1da6 in doris::StreamLoadAction::handle(doris::HttpRequest*) /root/doris/be/src/http/action/stream_load.cpp:155
#180x55bde971b32e in on_request /root/doris/be/src/http/ev_http_server.cpp:59
#190x55bdfe119ad6 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x1f8a4ad6)
#200x55bdfe0f9e50 in bufferevent_run_readcb_ (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x1f884e50)
#210x55bdfe11bcf2 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x1f8a6cf2)
#220x55bdfe102c58 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x1f88dc58)
#230x55bdfe1032d6 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x1f88e2d6)
#240x55bdfe105907 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x1f890907)
#250x55bde97218ba in operator() /root/doris/be/src/http/ev_http_server.cpp:105
#260x55bde97218ba in __invoke_impl<void, doris::EvHttpServer::start()::<lambda()>&> /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61
#270x55bde97218ba in __invoke_r<void, doris::EvHttpServer::start()::<lambda()>&> /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111
#280x55bde97218ba in _M_invoke /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291
#290x55bde88b2c62 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560
#300x55bde88b2c62 in doris::FunctionRunnable::run() /root/doris/be/src/util/threadpool.cpp:46
#310x55bde88b0b40 in doris::ThreadPool::dispatch_thread() /root/doris/be/src/util/threadpool.cpp:529
#320x55bde88b2817 in void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74
#330x55bde88b2817 in std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:96
#340x55bde88b2817 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /var/local/ldb-toolchain/include/c++/11/functional:420
#350x55bde88b2817 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() /var/local/ldb-toolchain/include/c++/11/functional:503
#360x55bde88b2817 in void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61
#370x55bde88b2817 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111
#380x55bde88b2817 in std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291
#390x55bde8884dd4 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560
#400x55bde8884dd4 in doris::Thread::supervise_thread(void*) /root/doris/be/src/util/thread.cpp:453
#410x7f7a7d277608 in start_thread /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477
#420x7f7a7d04d132 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f132)
Address 0x7f784aa162b0 is located in stack of thread T858 (EvHttpServer [w) at offset 208 in frame
#00x55bde743bb3f in apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport, apache::thrift::protocol::TNetworkBigEndian>::readMessageBegin(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, apache::thrift::protocol::TMessageType&, int&) /var/local/thirdparty/installed/include/thrift/protocol/TBinaryProtocol.tcc:200
This frame has 7object(s):
[48, 49) '<unknown>'
[64, 68) 'theBytes' (line 372)
[80, 84) 'theBytes' (line 372)
[96, 100) 'theBytes' (line 372)
[112, 116) 'theBytes' (line 372)
[128, 160) '<unknown>'
[192, 193) 'b' (line 350) <== Memory access at offset 208 overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
(longjmp and C++ exceptions *are* supported)
Thread T858 (EvHttpServer [w) created by T0 here:
#00x55bde6733061 in pthread_create (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7ebe061)
#10x55bde8880c71 in 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>*) /root/doris/be/src/util/thread.cpp:407
#20x55bde889e54a in doris::Status doris::Thread::create<void (doris::ThreadPool::*)(), doris::ThreadPool*>(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&, void (doris::ThreadPool::* const&)(), doris::ThreadPool* const&, scoped_refptr<doris::Thread>*) /root/doris/be/src/util/thread.h:57
#30x55bde889e54a in doris::ThreadPool::create_thread() /root/doris/be/src/util/threadpool.cpp:598
#40x55bde88a80d3 in doris::ThreadPool::init() /root/doris/be/src/util/threadpool.cpp:257
#50x55bde972343c in doris::Status doris::ThreadPoolBuilder::build<doris::ThreadPool>(std::unique_ptr<doris::ThreadPool, std::default_delete<doris::ThreadPool> >*) const /root/doris/be/src/util/threadpool.h:114
#60x55bde972343c in doris::EvHttpServer::start() /root/doris/be/src/http/ev_http_server.cpp:100
#70x55bde84810ef in doris::HttpService::start() /root/doris/be/src/service/http_service.cpp:191
#80x55bde67e0da3 in main /root/doris/be/src/service/doris_main.cpp:496
#90x7f7a7cf52082 in __libc_start_main ../csu/libc-start.c:308SUMMARY: AddressSanitizer: stack-buffer-overflow (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7eb9b16) in __interceptor_sigaltstack.part.0
Shadow bytes around the buggy address:
0x0fef8953ac00: 000000000000 f1 f1 f1 f1 f1 f1 01 f2 00000x0fef8953ac10: 0000 f3 f3 f3 f3 000000000000000000000x0fef8953ac20: 000000000000000000000000000000000x0fef8953ac30: 000000000000000000000000 f1 f1 f1 f1
0x0fef8953ac40: f1 f1 01 f2 04 f2 04 f2 04 f2 04 f2 00000000
=>0x0fef8953ac50: f2 f2 f2 f2 01 f3[f3]f3 00000000000000000x0fef8953ac60: 00000000000000000000 f1 f1 f1 f1 01 f2
0x0fef8953ac70: f8 f2 01 f2 04 f2 04 f2 0000 f2 f2 0000 f2 f2
0x0fef8953ac80: 0000 f2 f2 0000 f2 f2 000000 f2 f2 f2 f2 f2
0x0fef8953ac90: 00000000 f2 f2 f2 f2 00000000 f2 f2 f2 f2
0x0fef8953aca0: 000000000000 f3 f3 f3 f3 000000000000
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==3537813==ABORTING
start time: Mon 27 Feb 2023 09:31:44 PM CST
WARNING: Logging before InitGoogleLogging() is written to STDERR
I0227 21:31:45.326819 3568200 doris_main.cpp:324] enable_fuzzy_mode is true, set fuzzy configs
=================================================================
==3568200==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7faade82b8c8 at pc 0x55b93dc78b17 bp 0x7faade82b890 sp 0x7faade82b038
WRITE of size 24 at 0x7faade82b8c8 thread T611 (TaskWorkerPool.)
#00x55b93dc78b16 in __interceptor_sigaltstack.part.0 (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7eb9b16)
#10x55b93dcde8bf in __asan::PlatformUnpoisonStacks() (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7f1f8bf)
#20x55b93dce4224 in __asan_handle_no_return (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7f25224)
#30x55b9406a17d3 in apache::thrift::protocol::TProtocol::decrementOutputRecursionDepth() /var/local/thirdparty/installed/include/thrift/protocol/TProtocol.h:576
#40x55b9406a17d3 in apache::thrift::protocol::TOutputRecursionTracker::~TOutputRecursionTracker() /var/local/thirdparty/installed/include/thrift/protocol/TProtocol.h:648
#50x55b9406a17d3 in doris::TTabletInfo::write(apache::thrift::protocol::TProtocol*) const /root/doris/gensrc/build/gen_cpp/MasterService_types.cpp:483
#60x55b940697c0e in doris::TTablet::write(apache::thrift::protocol::TProtocol*) const /root/doris/gensrc/build/gen_cpp/MasterService_types.cpp:1215
#70x55b94069e25c in doris::TReportRequest::write(apache::thrift::protocol::TProtocol*) const /root/doris/gensrc/build/gen_cpp/MasterService_types.cpp:1930
#80x55b9402efc3d in doris::FrontendService_report_pargs::write(apache::thrift::protocol::TProtocol*) const /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:1204
#90x55b94032912e in doris::FrontendServiceClient::send_report(doris::TReportRequest const&) /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:5566
#100x55b94034fe22 in doris::FrontendServiceClient::report(doris::TMasterResult&, doris::TReportRequest const&) /root/doris/gensrc/build/gen_cpp/FrontendService.cpp:5555
#110x55b93e96e42c in doris::MasterServerClient::report(doris::TReportRequest const&, doris::TMasterResult*) /root/doris/be/src/agent/utils.cpp:109
#120x55b93e8ffbb4 in doris::TaskWorkerPool::_handle_report(doris::TReportRequest&, doris::TaskWorkerPool::ReportType) /root/doris/be/src/agent/task_worker_pool.cpp:1651
#130x55b93e906935 in doris::TaskWorkerPool::_report_tablet_worker_thread_callback() /root/doris/be/src/agent/task_worker_pool.cpp:1376
#140x55b93e94e9c1 in void std::__invoke_impl<void, void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&>(std::__invoke_memfun_deref, void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74
#150x55b93e94e9c1 in std::enable_if<is_invocable_r_v<void, void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&>, void>::type std::__invoke_r<void, void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&>(void (doris::TaskWorkerPool::*&)(), doris::TaskWorkerPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111
#160x55b93e94e9c1 in void std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /var/local/ldb-toolchain/include/c++/11/functional:570
#170x55b93e94e9c1 in void std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>::operator()<>() /var/local/ldb-toolchain/include/c++/11/functional:629
#180x55b93e94e9c1 in void std::__invoke_impl<void, std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&>(std::__invoke_other, std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61
#190x55b93e94e9c1 in std::enable_if<is_invocable_r_v<void, std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&>, void>::type std::__invoke_r<void, std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&>(std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111
#200x55b93e94e9c1 in std::_Function_handler<void (), std::_Bind_result<void, void (doris::TaskWorkerPool::*(doris::TaskWorkerPool*))()> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291
#210x55b93fdfcc62 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560
#220x55b93fdfcc62 in doris::FunctionRunnable::run() /root/doris/be/src/util/threadpool.cpp:46
#230x55b93fdfab40 in doris::ThreadPool::dispatch_thread() /root/doris/be/src/util/threadpool.cpp:529
#240x55b93fdfc817 in void std::__invoke_impl<void, void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:74
#250x55b93fdfc817 in std::__invoke_result<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>::type std::__invoke<void (doris::ThreadPool::*&)(), doris::ThreadPool*&>(void (doris::ThreadPool::*&)(), doris::ThreadPool*&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:96
#260x55b93fdfc817 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) /var/local/ldb-toolchain/include/c++/11/functional:420
#270x55b93fdfc817 in void std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>::operator()<, void>() /var/local/ldb-toolchain/include/c++/11/functional:503
#280x55b93fdfc817 in void std::__invoke_impl<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::__invoke_other, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:61
#290x55b93fdfc817 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>, void>::type std::__invoke_r<void, std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&>(std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()>&) /var/local/ldb-toolchain/include/c++/11/bits/invoke.h:111
#300x55b93fdfc817 in std::_Function_handler<void (), std::_Bind<void (doris::ThreadPool::*(doris::ThreadPool*))()> >::_M_invoke(std::_Any_data const&) /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:291
#310x55b93fdcedd4 in std::function<void ()>::operator()() const /var/local/ldb-toolchain/include/c++/11/bits/std_function.h:560
#320x55b93fdcedd4 in doris::Thread::supervise_thread(void*) /root/doris/be/src/util/thread.cpp:453
#330x7fac84550608 in start_thread /build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477
#340x7fac84326132 in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11f132)
Address 0x7faade82b8c8 is located in stack of thread T611 (TaskWorkerPool.) at offset 40 in frame
#00x55b93e9705ef in apache::thrift::protocol::TVirtualProtocol<apache::thrift::protocol::TBinaryProtocolT<apache::thrift::transport::TTransport, apache::thrift::protocol::TNetworkBigEndian>, apache::thrift::protocol::TProtocolDefaults>::writeI64_virt(long) /var/local/thirdparty/installed/include/thrift/protocol/TVirtualProtocol.h:380
This frame has 1object(s):
[32, 40) 'net' <== Memory access at offset 40 overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
(longjmp and C++ exceptions *are* supported)
Thread T611 (TaskWorkerPool.) created by T0 here:
#00x55b93dc7d061 in pthread_create (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7ebe061)
#10x55b93fdcac71 in 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>*) /root/doris/be/src/util/thread.cpp:407
#20x55b93fde854a in doris::Status doris::Thread::create<void (doris::ThreadPool::*)(), doris::ThreadPool*>(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&, void (doris::ThreadPool::* const&)(), doris::ThreadPool* const&, scoped_refptr<doris::Thread>*) /root/doris/be/src/util/thread.h:57
#30x55b93fde854a in doris::ThreadPool::create_thread() /root/doris/be/src/util/threadpool.cpp:598
#40x55b93fdf20d3 in doris::ThreadPool::init() /root/doris/be/src/util/threadpool.cpp:257
#50x55b93e8fa4f0 in doris::Status doris::ThreadPoolBuilder::build<doris::ThreadPool>(std::unique_ptr<doris::ThreadPool, std::default_delete<doris::ThreadPool> >*) const /root/doris/be/src/util/threadpool.h:114
#60x55b93e8fa4f0 in doris::TaskWorkerPool::start() /root/doris/be/src/agent/task_worker_pool.cpp:223
#70x55b93f99e4da in doris::AgentServer::AgentServer(doris::ExecEnv*, doris::TMasterInfo const&) /root/doris/be/src/agent/agent_server.cpp:96
#80x55b93f978c3b in doris::BackendService::BackendService(doris::ExecEnv*) /root/doris/be/src/service/backend_service.cpp:68
#90x55b93f982c0c in doris::BackendService::create_service(doris::ExecEnv*, int, doris::ThriftServer**) /root/doris/be/src/service/backend_service.cpp:71
#100x55b93dd2a61b in main /root/doris/be/src/service/doris_main.cpp:463
#110x7fac8422b082 in __libc_start_main ../csu/libc-start.c:308SUMMARY: AddressSanitizer: stack-buffer-overflow (/mnt/ssd01/pipline/OpenSourceDoris/clusterEnv/P0/Cluster7/be/lib/doris_be+0x7eb9b16) in __interceptor_sigaltstack.part.0
Shadow bytes around the buggy address:
0x0ff5dbcfd6c0: 000000000000000000000000000000000x0ff5dbcfd6d0: 000000000000000000000000000000000x0ff5dbcfd6e0: 000000000000000000000000000000000x0ff5dbcfd6f0: 000000000000000000000000000000000x0ff5dbcfd700: 00000000000000000000000000000000
=>0x0ff5dbcfd710: 00000000 f1 f1 f1 f1 00[f3]f3 f3 000000000x0ff5dbcfd720: 000000000000000000000000000000000x0ff5dbcfd730: f1 f1 f1 f1 f1 f1 01 f2 00 f2 f2 f2 00 f2 f2 f2
0x0ff5dbcfd740: 00 f2 f2 f2 00 f2 f2 f2 00 f3 f3 f3 000000000x0ff5dbcfd750: 000000000000000000000000000000000x0ff5dbcfd760: f1 f1 f1 f1 f1 f1 01 f2 00 f2 f2 f2 00 f2 f2 f2
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==3568200==ABORTING

Problem summary

Describe your changes.

Checklist(Required)

  • Does it affect the original behavior
  • Has unit tests been added
  • Has document been added or modified
  • Does it need to update dependencies
  • Is this PR support rollback (If NO, please explain WHY)

Further comments

If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run buildall

@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@morningman

Copy link
Copy Markdown
Contributor

is it compatible with old thrift version 0.13? better test it

@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run p0

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run feut

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run compile

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run feut

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run p0

1 similar comment
@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run p0

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run buildall

1 similar comment
@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run buildall

@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run buildall

@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

1 similar comment
@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run buildall

@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run buildall

@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run buildall

@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run feut

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run buildall

@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run buildall

@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run feut

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run compile

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run p0

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run arm

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run p0

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run arm

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run p0

1 similar comment
@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run p0

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run buildall

@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

update
update
update
update
fix
fix
fix
fix
fix
@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

run buildall

@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@BiteTheDDDDt

Copy link
Copy Markdown
ContributorAuthor

is it compatible with old thrift version 0.13? better test it

It looks like be with 0.13 and fe with 0.16 can run fine at the same time

@HappenLeeHappenLee left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@github-actionsgithub-actionsBot added the approved Indicates a PR has been approved by one committer. label Mar 10, 2023
@github-actions

Copy link
Copy Markdown
Contributor

PR approved by at least one committer and no changes requested.

@github-actions

Copy link
Copy Markdown
Contributor

PR approved by anyone and no changes requested.

@BiteTheDDDDt
BiteTheDDDDt merged commit 1a549ed into apache:masterMar 10, 2023
morningman added a commit to morningman/doris that referenced this pull request Mar 19, 2023
morningman added a commit to morningman/doris that referenced this pull request Mar 20, 2023
morningman added a commit to morningman/doris that referenced this pull request Mar 28, 2023
morningman added a commit to morningman/doris that referenced this pull request Apr 10, 2023
morningman added a commit that referenced this pull request Apr 12, 2023
gnehil pushed a commit to gnehil/doris that referenced this pull request Apr 21, 2023
@BiteTheDDDDt
BiteTheDDDDt deleted the dev_0224 branch January 20, 2025 06:54
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approvedIndicates a PR has been approved by one committer.reviewed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@BiteTheDDDDt@morningman@HappenLee