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

   ## Proposed changes
   
   How to reproduce and more details in #27409 
   
   ```
   ==87116==ERROR: AddressSanitizer: heap-use-after-free on address 
0x60200160a118 at pc 0x5560d96fe0f3 bp 0x7f47783b7f90 sp 0x7f47783b7f80
   READ of size 2 at 0x60200160a118 thread T391 (FragmentMgrThre)
       #0 0x5560d96fe0f2 in inline_memcpy 
/data/doris-1.x/be/src/glibc-compatibility/memcpy/memcpy_x86_64.cpp:132
       #1 0x5560d96feea5 in memcpy 
/data/doris-1.x/be/src/glibc-compatibility/memcpy/memcpy_x86_64.cpp:219
       #2 0x5560ed490b67 in ra_overwrite 
(/usr/local/service/doris/lib/be/doris_be+0x25b72b67)
       #3 0x5560d9d077f5 in roaring::Roaring::Roaring(roaring::Roaring const&) 
/var/local/thirdparty/installed/include/roaring/roaring.hh:68
   
       ...too much output.
   
       #21 0x5560d9d08b26 in phmap::btree_map<unsigned int, roaring::Roaring, 
phmap::Less<unsigned int>, std::allocator<std::pair<unsigned int const, 
roaring::Roaring> > >::operator=(phmap::btree_map<unsigned int, 
roaring::Roaring, phmap::Less<unsigned int>, std::allocator<std::pair<unsigned 
int const, roaring::Roaring> > > const&) 
/var/local/thirdparty/installed/include/parallel_hashmap/btree.h:3963
       #22 0x5560d9d08b50 in 
doris::detail::Roaring64Map::operator=(doris::detail::Roaring64Map const&) 
/data/doris-1.x/be/src/util/bitmap_value.h:140
       #23 0x5560d9d12665 in doris::BitmapValue::_prepare_bitmap_for_write() 
/data/doris-1.x/be/src/util/bitmap_value.h:1954
       #24 0x5560d9d0f258 in doris::BitmapValue::operator^=(doris::BitmapValue 
const&) /data/doris-1.x/be/src/util/bitmap_value.h:1466
       #25 0x5560e31dac6c in 
doris::vectorized::BitmapXor::vector_vector(COW<doris::vectorized::IColumn>::immutable_ptr<doris::vectorized::IColumn>*,
 unsigned long, unsigned long, std::vector<doris::BitmapValue, 
std::allocator<doris::BitmapValue> >&, doris::vectorized::IColumn*) 
/data/doris-1.x/be/src/vec/functions/function_bitmap_variadic.cpp:130
       #26 0x5560e31ed0a7 in 
doris::vectorized::FunctionBitMapVariadic<doris::vectorized::BitmapXor>::execute_impl_internal(doris_udf::FunctionContext*,
 doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned 
long> > const&, unsigned long, unsigned long) 
/data/doris-1.x/be/src/vec/functions/function_bitmap_variadic.cpp:230
       #27 0x5560e31e8a1c in 
doris::vectorized::FunctionBitMapVariadic<doris::vectorized::BitmapXor>::execute_impl(doris_udf::FunctionContext*,
 doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned 
long> > const&, unsigned long, unsigned long) 
/data/doris-1.x/be/src/vec/functions/function_bitmap_variadic.cpp:196
       #28 0x5560e25fdaf5 in 
doris::vectorized::DefaultExecutable::execute_impl(doris_udf::FunctionContext*, 
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned 
long> > const&, unsigned long, unsigned long) 
/data/doris-1.x/be/src/vec/functions/function.h:484
       #29 0x5560e3f01c98 in 
doris::vectorized::PreparedFunctionImpl::execute_without_low_cardinality_columns(doris_udf::FunctionContext*,
 doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned 
long> > const&, unsigned long, unsigned long, bool) 
/data/doris-1.x/be/src/vec/functions/function.cpp:244
       #30 0x5560e3f01325 in 
doris::vectorized::PreparedFunctionImpl::default_implementation_for_nulls(doris_udf::FunctionContext*,
 doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned 
long> > const&, unsigned long, unsigned long, bool, bool*) 
/data/doris-1.x/be/src/vec/functions/function.cpp:214
       #31 0x5560e3f01a26 in 
doris::vectorized::PreparedFunctionImpl::execute_without_low_cardinality_columns(doris_udf::FunctionContext*,
 doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned 
long> > const&, unsigned long, unsigned long, bool) 
/data/doris-1.x/be/src/vec/functions/function.cpp:235
       #32 0x5560e3f01d98 in 
doris::vectorized::PreparedFunctionImpl::execute(doris_udf::FunctionContext*, 
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned 
long> > const&, unsigned long, unsigned long, bool) 
/data/doris-1.x/be/src/vec/functions/function.cpp:266
       #33 0x5560e25fa730 in 
doris::vectorized::IFunctionBase::execute(doris_udf::FunctionContext*, 
doris::vectorized::Block&, std::vector<unsigned long, std::allocator<unsigned 
long> > const&, unsigned long, unsigned long, bool) 
/data/doris-1.x/be/src/vec/functions/function.h:155
       #34 0x5560e2513fef in 
doris::vectorized::VectorizedFnCall::execute(doris::vectorized::VExprContext*, 
doris::vectorized::Block*, int*) 
/data/doris-1.x/be/src/vec/exprs/vectorized_fn_call.cpp:109
   #35 0x5560e25233be in 
doris::vectorized::VExprContext::execute(doris::vectorized::Block*, int*) 
/data/doris-1.x/be/src/vec/exprs/vexpr_context.cpp:46
       #36 0x5560df029a77 in 
doris::vectorized::VUnionNode::materialize_block(doris::vectorized::Block*, 
doris::vectorized::Block*) /data/doris-1.x/be/src/vec/exec/vunion_node.cpp:285
       #37 0x5560df025478 in 
doris::vectorized::VUnionNode::get_next_materialized(doris::RuntimeState*, 
doris::vectorized::Block*) /data/doris-1.x/be/src/vec/exec/vunion_node.cpp:157
   
   ...
   
   0x60200160a118 is located 8 bytes inside of 11-byte region 
[0x60200160a110,0x60200160a11b)
   freed by thread T373 (FragmentMgrThre) here:
       #0 0x5560d96b8a6f in free 
(/usr/local/service/doris/lib/be/doris_be+0x11d9aa6f)
       #1 0x5560ed490883 in ra_shrink_to_fit 
(/usr/local/service/doris/lib/be/doris_be+0x25b72883)
   
   previously allocated by thread T373 (FragmentMgrThre) here:
       #0 0x5560d96b8dc7 in __interceptor_malloc 
(/usr/local/service/doris/lib/be/doris_be+0x11d9adc7)
       #1 0x5560ed490822 in ra_shrink_to_fit 
(/usr/local/service/doris/lib/be/doris_be+0x25b72822)
   
   ...
   ```
   
   <!--Describe your changes.-->
   
   ## 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