[ 
https://issues.apache.org/jira/browse/ARROW-2552?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rok Mihevc updated ARROW-2552:
------------------------------
    External issue URL: https://github.com/apache/arrow/issues/18894

> [Plasma] Unit tests are flaky
> -----------------------------
>
>                 Key: ARROW-2552
>                 URL: https://issues.apache.org/jira/browse/ARROW-2552
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++ - Plasma
>            Reporter: Uwe Korn
>            Assignee: Philipp Moritz
>            Priority: Blocker
>              Labels: pull-request-available
>             Fix For: 0.10.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently Python unittests fail randomly in Plasma:
> {code:java}
> --------------------------- Captured stderr teardown 
> ---------------------------
> ==20552== Invalid free() / delete / delete[] / realloc()
> ==20552==    at 0x4C2C83C: operator delete[](void*) (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==20552==    by 0x498EE6: std::default_delete<unsigned char 
> []>::operator()(unsigned char*) const (unique_ptr.h:99)
> ==20552==    by 0x4955C0: std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >::~unique_ptr() (unique_ptr.h:377)
> ==20552==    by 0x4A66F1: void std::_Destroy<std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> > >(std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*) (stl_construct.h:93)
> ==20552==    by 0x4A5E3F: void 
> std::_Destroy_aux<false>::__destroy<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*>(std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*) (stl_construct.h:103)
> ==20552==    by 0x4A4FE8: void std::_Destroy<std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*>(std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*, std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*) (stl_construct.h:126)
> ==20552==    by 0x4A3A05: void std::_Destroy<std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*, std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> > >(std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*, std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*, 
> std::allocator<std::unique_ptr<unsigned char [], std::default_delete<unsigned 
> char []> > >&) (stl_construct.h:151)
> ==20552==    by 0x4A0ACC: std::deque<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, 
> std::allocator<std::unique_ptr<unsigned char [], std::default_delete<unsigned 
> char []> > > 
> >::_M_destroy_data_aux(std::_Deque_iterator<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >&, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*>, 
> std::_Deque_iterator<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >&, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*>) (deque.tcc:806)
> ==20552==    by 0x49CE36: std::deque<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, 
> std::allocator<std::unique_ptr<unsigned char [], std::default_delete<unsigned 
> char []> > > >::_M_destroy_data(std::_Deque_iterator<std::unique_ptr<unsigned 
> char [], std::default_delete<unsigned char []> >, std::unique_ptr<unsigned 
> char [], std::default_delete<unsigned char []> >&, std::unique_ptr<unsigned 
> char [], std::default_delete<unsigned char []> >*>, 
> std::_Deque_iterator<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >&, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*>, 
> std::allocator<std::unique_ptr<unsigned char [], std::default_delete<unsigned 
> char []> > > const&) (stl_deque.h:1853)
> ==20552==    by 0x4A45CC: std::deque<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, 
> std::allocator<std::unique_ptr<unsigned char [], std::default_delete<unsigned 
> char []> > > >::~deque() (stl_deque.h:918)
> ==20552==    by 0x4A1CAF: plasma::NotificationQueue::~NotificationQueue() 
> (store.h:37)
> ==20552==    by 0x4A1CCD: std::pair<int const, 
> plasma::NotificationQueue>::~pair() (stl_pair.h:96)
> ==20552==  Address 0x63136e0 is 0 bytes inside a block of size 112 free'd
> ==20552==    at 0x4C2C83C: operator delete[](void*) (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==20552==    by 0x498EE6: std::default_delete<unsigned char 
> []>::operator()(unsigned char*) const (unique_ptr.h:99)
> ==20552==    by 0x4955C0: std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >::~unique_ptr() (unique_ptr.h:377)
> ==20552==    by 0x4A66F1: void std::_Destroy<std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> > >(std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*) (stl_construct.h:93)
> ==20552==    by 0x4A5E3F: void 
> std::_Destroy_aux<false>::__destroy<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*>(std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*) (stl_construct.h:103)
> ==20552==    by 0x4A4FE8: void std::_Destroy<std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*>(std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*, std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*) (stl_construct.h:126)
> ==20552==    by 0x4A3A05: void std::_Destroy<std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*, std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> > >(std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*, std::unique_ptr<unsigned char 
> [], std::default_delete<unsigned char []> >*, 
> std::allocator<std::unique_ptr<unsigned char [], std::default_delete<unsigned 
> char []> > >&) (stl_construct.h:151)
> ==20552==    by 0x4A0ACC: std::deque<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, 
> std::allocator<std::unique_ptr<unsigned char [], std::default_delete<unsigned 
> char []> > > 
> >::_M_destroy_data_aux(std::_Deque_iterator<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >&, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*>, 
> std::_Deque_iterator<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >&, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*>) (deque.tcc:806)
> ==20552==    by 0x49CE36: std::deque<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, 
> std::allocator<std::unique_ptr<unsigned char [], std::default_delete<unsigned 
> char []> > > >::_M_destroy_data(std::_Deque_iterator<std::unique_ptr<unsigned 
> char [], std::default_delete<unsigned char []> >, std::unique_ptr<unsigned 
> char [], std::default_delete<unsigned char []> >&, std::unique_ptr<unsigned 
> char [], std::default_delete<unsigned char []> >*>, 
> std::_Deque_iterator<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >&, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*>, 
> std::allocator<std::unique_ptr<unsigned char [], std::default_delete<unsigned 
> char []> > > const&) (stl_deque.h:1853)
> ==20552==    by 0x498D06: std::deque<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, 
> std::allocator<std::unique_ptr<unsigned char [], std::default_delete<unsigned 
> char []> > > >::_M_erase_at_end(std::_Deque_iterator<std::unique_ptr<unsigned 
> char [], std::default_delete<unsigned char []> >, std::unique_ptr<unsigned 
> char [], std::default_delete<unsigned char []> >&, std::unique_ptr<unsigned 
> char [], std::default_delete<unsigned char []> >*>) (stl_deque.h:1870)
> ==20552==    by 0x498A6D: std::deque<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, 
> std::allocator<std::unique_ptr<unsigned char [], std::default_delete<unsigned 
> char []> > > >::clear() (stl_deque.h:1617)
> ==20552==    by 0x4951A0: std::deque<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, 
> std::allocator<std::unique_ptr<unsigned char [], std::default_delete<unsigned 
> char []> > > >::erase(std::_Deque_iterator<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >&, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*>, 
> std::_Deque_iterator<std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >&, std::unique_ptr<unsigned char [], 
> std::default_delete<unsigned char []> >*>) (deque.tcc:223)
> ==20552== 
> ==20552== 
> ==20552== HEAP SUMMARY:
> ==20552==     in use at exit: 75,009 bytes in 6 blocks
> ==20552==   total heap usage: 40,745 allocs, 40,740 frees, 4,634,131 bytes 
> allocated
> ==20552== 
> ==20552== 33 bytes in 1 blocks are still reachable in loss record 1 of 3
> ==20552==    at 0x4C2B0E0: operator new(unsigned long) (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==20552==    by 0x511A618: std::string::_Rep::_S_create(unsigned long, 
> unsigned long, std::allocator<char> const&) (in 
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
> ==20552==    by 0x511A991: std::string::_M_mutate(unsigned long, unsigned 
> long, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
> ==20552==    by 0x511AFED: std::string::_M_replace_safe(unsigned long, 
> unsigned long, char const*, unsigned long) (in 
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
> ==20552==    by 0x4913BB: main (store.cc:869)
> ==20552== 
> ==20552== 2,272 bytes in 4 blocks are still reachable in loss record 2 of 3
> ==20552==    at 0x4C2AB80: malloc (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==20552==    by 0x58F0C81: fdopen@@GLIBC_2.2.5 (iofdopen.c:138)
> ==20552==    by 0x4B069D: create_buffer(long) (malloc.cc:105)
> ==20552==    by 0x4B3A05: fake_mmap (malloc.cc:135)
> ==20552==    by 0x4B427C: sys_alloc (dlmalloc.c:4155)
> ==20552==    by 0x4B427C: dlmalloc (dlmalloc.c:4680)
> ==20552==    by 0x4B6844: internal_memalign (dlmalloc.c:4917)
> ==20552==    by 0x4B6844: dlmemalign (dlmalloc.c:5275)
> ==20552==    by 0x48C909: plasma::PlasmaStore::create_object(plasma::UniqueID 
> const&, long, long, int, plasma::Client*, plasma::PlasmaObject*) 
> (store.cc:173)
> ==20552==    by 0x48FD1F: 
> plasma::PlasmaStore::process_message(plasma::Client*) (store.cc:677)
> ==20552==    by 0x48EC23: 
> plasma::PlasmaStore::connect_client(int)::{lambda(int)#1}::operator()(int) 
> const (store.cc:516)
> ==20552==    by 0x491ADC: std::_Function_handler<void (int), 
> plasma::PlasmaStore::connect_client(int)::{lambda(int)#1}>::_M_invoke(std::_Any_data
>  const&, int) (functional:2071)
> ==20552==    by 0x4AA8B9: std::function<void (int)>::operator()(int) const 
> (functional:2471)
> ==20552==    by 0x4AA370: plasma::EventLoop::FileEventCallback(aeEventLoop*, 
> int, void*, int) (events.cc:28)
> ==20552== 
> ==20552== 72,704 bytes in 1 blocks are still reachable in loss record 3 of 3
> ==20552==    at 0x4C2AB80: malloc (in 
> /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==20552==    by 0x50BDC25: ??? (in 
> /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
> ==20552==    by 0x40101D9: call_init.part.0 (dl-init.c:78)
> ==20552==    by 0x40102C2: call_init (dl-init.c:36)
> ==20552==    by 0x40102C2: _dl_init (dl-init.c:126)
> ==20552==    by 0x4001299: ??? (in /lib/x86_64-linux-gnu/ld-2.19.so)
> ==20552==    by 0x4: ???
> ==20552==    by 0xFFEFFEFD6: ???
> ==20552==    by 0xFFEFFF038: ???
> ==20552==    by 0xFFEFFF03B: ???
> ==20552==    by 0xFFEFFF061: ???
> ==20552==    by 0xFFEFFF064: ???
> ==20552== 
> ==20552== LEAK SUMMARY:
> ==20552==    definitely lost: 0 bytes in 0 blocks
> ==20552==    indirectly lost: 0 bytes in 0 blocks
> ==20552==      possibly lost: 0 bytes in 0 blocks
> ==20552==    still reachable: 75,009 bytes in 6 blocks
> ==20552==                       of which reachable via heuristic:
> ==20552==                         stdstring          : 33 bytes in 1 blocks
> ==20552==         suppressed: 0 bytes in 0 blocks
> ==20552== 
> ==20552== For counts of detected and suppressed errors, rerun with: -v
> ==20552== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0){code}



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

Reply via email to