[ 
https://issues.apache.org/jira/browse/ARROW-17225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17572131#comment-17572131
 ] 

Dewey Dunnington commented on ARROW-17225:
------------------------------------------

Could it be a C++ standard library mismatch? Some leaks have


{noformat}
==5251==    at 0x4849013: operator new(unsigned long) (in 
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==5251==    by 0x101EBC74: allocate (new_allocator.h:121)
{noformat}

But some have:

{noformat}
==5251==    at 0x4849013: operator new(unsigned long) (in 
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==5251==    by 0xFA920B1: 
__gnu_cxx::new_allocator<arrow::compute::ExecNode*>::allocate(unsigned long, 
void const*) (new_allocator.h:121)
{noformat}

> [C++] Possible memory leak when registering compare functions
> -------------------------------------------------------------
>
>                 Key: ARROW-17225
>                 URL: https://issues.apache.org/jira/browse/ARROW-17225
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>            Reporter: Dewey Dunnington
>            Priority: Critical
>
> From the nightly builds:
> https://dev.azure.com/ursacomputing/crossbow/_build/results?buildId=30137&view=logs&j=0da5d1d9-276d-5173-c4c4-9d4d4ed14fdb&t=d9b15392-e4ce-5e4c-0c8c-b69645229181&l=25157
> {noformat}
> ==5251== 80 bytes in 1 blocks are possibly lost in loss record 250 of 4,082
> ==5251==    at 0x4849013: operator new(unsigned long) (in 
> /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==5251==    by 0x1053A46D: allocate (new_allocator.h:121)
> ==5251==    by 0x1053A46D: allocate (alloc_traits.h:460)
> ==5251==    by 0x1053A46D: _M_allocate (stl_vector.h:346)
> ==5251==    by 0x1053A46D: _M_range_initialize<const 
> arrow::compute::InputType*> (stl_vector.h:1582)
> ==5251==    by 0x1053A46D: std::vector<arrow::compute::InputType, 
> std::allocator<arrow::compute::InputType> 
> >::vector(std::initializer_list<arrow::compute::InputType>, 
> std::allocator<arrow::compute::InputType> const&) [clone .constprop.0] 
> (stl_vector.h:629)
> ==5251==    by 0x1053F84D: arrow::compute::ScalarKernel 
> arrow::compute::internal::(anonymous 
> namespace)::GetCompareKernel<arrow::compute::internal::(anonymous 
> namespace)::Greater>(arrow::compute::InputType, arrow::Type::type, 
> arrow::Status (*)(arrow::compute::KernelContext*, arrow::compute::ExecSpan 
> const&, arrow::compute::ExecResult*)) (scalar_compare.cc:316)
> ==5251==    by 0x1054479E: void arrow::compute::internal::(anonymous 
> namespace)::AddPrimitiveCompare<arrow::compute::internal::(anonymous 
> namespace)::Greater>(std::shared_ptr<arrow::DataType> const&, 
> arrow::compute::ScalarFunction*) (scalar_compare.cc:334)
> ==5251==    by 0x10544C0F: std::shared_ptr<arrow::compute::ScalarFunction> 
> arrow::compute::internal::(anonymous 
> namespace)::MakeCompareFunction<arrow::compute::internal::(anonymous 
> namespace)::Greater>(std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> >, arrow::compute::FunctionDoc) (scalar_compare.cc:397)
> ==5251==    by 0x10548622: 
> arrow::compute::internal::RegisterScalarComparison(arrow::compute::FunctionRegistry*)
>  (scalar_compare.cc:894)
> ==5251==    by 0x10237663: CreateBuiltInRegistry (registry.cc:279)
> ==5251==    by 0x10237663: arrow::compute::GetFunctionRegistry() 
> (registry.cc:319)
> ==5251==    by 0xFAA04DA: compute__GetFunctionNames[abi:cxx11]() 
> (compute.cpp:606)
> ==5251==    by 0xF9FE4EB: _arrow_compute__GetFunctionNames 
> (arrowExports.cpp:1122)
> ==5251==    by 0x4953B40: R_doDotCall (dotcode.c:598)
> ==5251==    by 0x49C2C14: bcEval (eval.c:7682)
> ==5251==    by 0x499DB93: Rf_eval (eval.c:748)
> {noformat}
> The R function call that triggered this was 
> {{arrow::list_compute_functions()}}, probably when it was called when loading 
> the arrow namespace (i.e., {{library(arrow}}}).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to