mrhhsg opened a new pull request, #22464:
URL: https://github.com/apache/doris/pull/22464

   ## Proposed changes
   
   Issue Number: close #xxx
   
   ```
   ==4165385==ERROR: AddressSanitizer: heap-use-after-free on address 
0x6030dcd3c740 at pc 0x55ccf2565c73 bp 0x7f715effffd0 sp 0x7f715effffc8
   READ of size 8 at 0x6030dcd3c740 thread T454 (_scanner_scan)
       #0 0x55ccf2565c72 in 
doris::io::PrefetchBufferedReader::PrefetchBufferedReader(doris::RuntimeProfile*,
 std::shared_ptr, doris::io::PrefetchRange, doris::io::IOContext const*, 
long)::$_0::operator()(doris::io::PrefetchBuffer&) const 
/root/doris/be/src/io/fs/buffered_reader.cpp:609:13
       #1 0x55ccf2565bbe in void std::__invoke_impl, doris::io::PrefetchRange, 
doris::io::IOContext const*, long)::$_0&, 
doris::io::PrefetchBuffer&>(std::__invoke_other, 
doris::io::PrefetchBufferedReader::PrefetchBufferedReader(doris::RuntimeProfile*,
 std::shared_ptr, doris::io::PrefetchRange, doris::io::IOContext const*, 
long)::$_0&, doris::io::PrefetchBuffer&) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
       #2 0x55ccf2565b20 in std::enable_if, doris::io::PrefetchRange, 
doris::io::IOContext const*, long)::$_0&, doris::io::PrefetchBuffer&>, 
void>::type std::__invoke_r, doris::io::PrefetchRange, doris::io::IOContext 
const*, long)::$_0&, 
doris::io::PrefetchBuffer&>(doris::io::PrefetchBufferedReader::PrefetchBufferedReader(doris::RuntimeProfile*,
 std::shared_ptr, doris::io::PrefetchRange, doris::io::IOContext const*, 
long)::$_0&, doris::io::PrefetchBuffer&) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2
       #3 0x55ccf25658f6 in std::_Function_handler, doris::io::PrefetchRange, 
doris::io::IOContext const*, long)::$_0>::_M_invoke(std::_Any_data const&, 
doris::io::PrefetchBuffer&) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9
       #4 0x55ccf256d3be in 
std::function::operator()(doris::io::PrefetchBuffer&) const 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9
       #5 0x55ccf255d92c in doris::io::PrefetchBuffer::close() 
/root/doris/be/src/io/fs/buffered_reader.cpp:578:9
       #6 0x55ccf2563ff2 in 
doris::io::PrefetchBufferedReader::close()::$_0::operator()(std::shared_ptr&) 
const /root/doris/be/src/io/fs/buffered_reader.cpp:660:77
       #7 0x55ccf2560aa0 in doris::io::PrefetchBufferedReader::close()::$_0 
std::for_each<__gnu_cxx::__normal_iterator*, std::vector, std::allocator>>>, 
doris::io::PrefetchBufferedReader::close()::$_0>(__gnu_cxx::__normal_iterator*, 
std::vector, std::allocator>>>, __gnu_cxx::__normal_iterator*, std::vector, 
std::allocator>>>, doris::io::PrefetchBufferedReader::close()::$_0) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_algo.h:3820:2
       #8 0x55ccf256082e in doris::io::PrefetchBufferedReader::close() 
/root/doris/be/src/io/fs/buffered_reader.cpp:659:9
       #9 0x55ccf255fc4b in 
doris::io::PrefetchBufferedReader::~PrefetchBufferedReader() 
/root/doris/be/src/io/fs/buffered_reader.cpp:627:5
       #10 0x55ccf2580a5e in void 
std::destroy_at(doris::io::PrefetchBufferedReader*) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h:88:15
       #11 0x55ccf2580979 in void 
std::allocator_traits>::destroy(std::allocator&, 
doris::io::PrefetchBufferedReader*) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:533:4
       #12 0x55ccf2580347 in std::_Sp_counted_ptr_inplace, 
(__gnu_cxx::_Lock_policy)2>::_M_dispose() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:528:2
       #13 0x55cce238f911 in 
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:168:6
       #14 0x55cce238f649 in 
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:702:11
       #15 0x55cce2390a7a in std::__shared_ptr::~__shared_ptr() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1149:31
       #16 0x55cce2390a44 in std::shared_ptr::~shared_ptr() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h:122:11
       #17 0x55ccf251af7d in doris::vectorized::CsvReader::~CsvReader() 
/root/doris/be/src/vec/exec/format/csv/csv_reader.cpp:129:23
       #18 0x55ccf251aff8 in doris::vectorized::CsvReader::~CsvReader() 
/root/doris/be/src/vec/exec/format/csv/csv_reader.cpp:129:23
       #19 0x55cce4c79874 in 
std::default_delete::operator()(doris::vectorized::GenericReader*) const 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:85:2
       #20 0x55cce4c50ceb in std::unique_ptr>::~unique_ptr() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:361:4
       #21 0x55ccf767142b in doris::vectorized::VFileScanner::~VFileScanner() 
/root/doris/be/src/vec/exec/scan/vfile_scanner.h:60:7
       #22 0x55ccf7671468 in doris::vectorized::VFileScanner::~VFileScanner() 
/root/doris/be/src/vec/exec/scan/vfile_scanner.h:60:7
       #23 0x55ccf744bb24 in 
std::default_delete::operator()(doris::vectorized::VFileScanner*) const 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/unique_ptr.h:85:2
       #24 0x55ccf744c8db in std::_Sp_counted_deleter, std::allocator, 
(__gnu_cxx::_Lock_policy)2>::_M_dispose() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:442:9
       #25 0x55cce238f911 in 
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:168:6
       #26 0x55cce238f649 in 
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:702:11
       #27 0x55ccf73b378a in std::__shared_ptr::~__shared_ptr() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1149:31
       #28 0x55ccf73b1094 in std::shared_ptr::~shared_ptr() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr.h:122:11
       #29 0x55ccf76029b8 in 
doris::vectorized::ScannerScheduler::_schedule_scanners(doris::vectorized::ScannerContext*)::$_1::operator()()
 const::'lambda1'()::~() 
/root/doris/be/src/vec/exec/scan/scanner_scheduler.cpp:214:65
       #30 0x55ccf76048b2 in 
std::_Function_base::_Base_manager::_M_destroy(std::_Any_data&, 
std::integral_constant) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:174:4
       #31 0x55ccf7604759 in 
std::_Function_base::_Base_manager::_M_manager(std::_Any_data&, std::_Any_data 
const&, std::_Manager_operation) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:200:8
       #32 0x55ccf760414b in 
std::_Function_handler::_M_manager(std::_Any_data&, std::_Any_data const&, 
std::_Manager_operation) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:283:6
       #33 0x55cce2414d52 in std::_Function_base::~_Function_base() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:245:2
       #34 0x55cce2478094 in std::function::~function() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:111:11
       #35 0x55cce5aafe38 in doris::FunctionRunnable::~FunctionRunnable() 
/root/doris/be/src/util/threadpool.cpp:44:7
       #36 0x55cce5aaffb2 in void std::destroy_at(doris::FunctionRunnable*) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/stl_construct.h:88:15
       #37 0x55cce5aafec9 in void 
std::allocator_traits>::destroy(std::allocator&, doris::FunctionRunnable*) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/alloc_traits.h:533:4
       #38 0x55cce5aaf867 in std::_Sp_counted_ptr_inplace, 
(__gnu_cxx::_Lock_policy)2>::_M_dispose() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:528:2
       #39 0x55cce238f911 in 
std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:168:6
       #40 0x55cce238f649 in 
std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:702:11
       #41 0x55cce470870a in std::__shared_ptr::~__shared_ptr() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1149:31
       #42 0x55cce5aa5f3a in std::__shared_ptr::reset() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/shared_ptr_base.h:1267:9
       #43 0x55cce5a9b200 in doris::ThreadPool::dispatch_thread() 
/root/doris/be/src/util/threadpool.cpp:539:23
       #44 0x55cce5ac4cd5 in void 
std::__invoke_impl(std::__invoke_memfun_deref, void (doris::ThreadPool::*&)(), 
doris::ThreadPool*&) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:74:14
       #45 0x55cce5ac4b7e in std::__invoke_result::type std::__invoke(void 
(doris::ThreadPool::*&)(), doris::ThreadPool*&) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:96:14
       #46 0x55cce5ac4af6 in void std::_Bind::__call(std::tuple<>&&, 
std::_Index_tuple<0ul>) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:420:11
       #47 0x55cce5ac498f in void std::_Bind::operator()() 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/functional:503:17
       #48 0x55cce5ac4896 in void std::__invoke_impl&>(std::__invoke_other, 
std::_Bind&) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:61:14
       #49 0x55cce5ac4808 in std::enable_if&>, void>::type 
std::__invoke_r&>(std::_Bind&) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/invoke.h:111:2
       #50 0x55cce5ac445e in std::_Function_handler>::_M_invoke(std::_Any_data 
const&) 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:291:9
       #51 0x55cce2552536 in std::function::operator()() const 
/var/local/ldb_toolchain/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/bits/std_function.h:560:9
       #52 0x55cce5a64bff in doris::Thread::supervise_thread(void*) 
/root/doris/be/src/util/thread.cpp:465:5
       #53 0x7f7db06bc608 in start_thread 
/build/glibc-SzIz7B/glibc-2.31/nptl/pthread_create.c:477:8
       #54 0x7f7db094b132 in __clone 
/build/glibc-SzIz7B/glibc-2.31/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
   ```
   
   ## Further comments
   
   If this is a relatively large or complex change, kick off the discussion at 
[[email protected]](mailto:[email protected]) by explaining why you 
chose the solution you did and what alternatives you considered, etc...
   
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to