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

Wes McKinney commented on ARROW-3241:
-------------------------------------

Having a hard time pinpointing the offending change. When I cleared out ccache 
and recompiled I actually am getting a core dump in

{code}
python -c "from pyarrow import plasma; print(plasma.ObjectID.from_random())"
{code}

gdb doesn't report anything useful, but valgrind shows (still inconclusive):

{code}
==7126== Invalid read of size 4
==7126==    at 0x1EB5AC76: __exchange_and_add (atomicity.h:49)
==7126==    by 0x1EB5AC76: __exchange_and_add_dispatch (atomicity.h:82)
==7126==    by 0x1EB5AC76: std::string::_Rep::_M_dispose(std::allocator<char> 
const&) (basic_string.h:3151)
==7126==    by 0x1EB5ACA4: std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::~basic_string() (basic_string.h:3498)
==7126==    by 0x5EE61A8: __run_exit_handlers (exit.c:82)
==7126==    by 0x5EE61F4: exit (exit.c:104)
==7126==    by 0x5ECBF4B: (below main) (libc-start.c:321)
==7126==  Address 0x185e2e10 is 16 bytes inside a block of size 67 free'd
==7126==    at 0x4C2CD9D: operator delete(void*) (vg_replace_malloc.c:576)
==7126==    by 0x1EB5ACA4: std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::~basic_string() (basic_string.h:3498)
==7126==    by 0x5EE61A8: __run_exit_handlers (exit.c:82)
==7126==    by 0x5EE61F4: exit (exit.c:104)
==7126==    by 0x5ECBF4B: (below main) (libc-start.c:321)
==7126==  Block was alloc'd at
==7126==    at 0x4C2B4A5: operator new(unsigned long) (vg_replace_malloc.c:334)
==7126==    by 0x1EB5ABBE: allocate (new_allocator.h:111)
==7126==    by 0x1EB5ABBE: std::string::_Rep::_S_create(unsigned long, unsigned 
long, std::allocator<char> const&) (basic_string.tcc:1057)
==7126==    by 0x1EB5B43A: std::string::_Rep::_M_clone(std::allocator<char> 
const&, unsigned long) (basic_string.tcc:1078)
==7126==    by 0x1EB5B8CE: std::string::assign(std::string const&) 
(basic_string.tcc:699)
==7126==    by 0x243E0AB7: arrow::CpuInfo::Init() (cpu-info.cc:232)
==7126==    by 0x243F82DD: 
arrow::compute::FunctionContext::FunctionContext(arrow::MemoryPool*) 
(context.cc:30)
==7126==    by 0x23D7A58C: 
__pyx_pf_7pyarrow_3lib_16_FunctionContext___cinit__(__pyx_obj_7pyarrow_3lib__FunctionContext*)
 (lib.cpp:37562)
==7126==    by 0x23D7A520: 
__pyx_pw_7pyarrow_3lib_16_FunctionContext_1__cinit__(_object*, _object*, 
_object*) (lib.cpp:37543)
==7126==    by 0x23D7A012: 
__pyx_tp_new_7pyarrow_3lib__FunctionContext(_typeobject*, _object*, _object*) 
(lib.cpp:118295)
==7126==    by 0x4F1DE32: type_call (typeobject.c:895)
==7126==    by 0x23C5AA87: __Pyx_PyObject_Call(_object*, _object*, _object*) 
(lib.cpp:133942)
==7126==    by 0x23C99DFD: __Pyx_PyObject_CallNoArg(_object*) (lib.cpp:134640)
==7126== 
==7126== Invalid free() / delete / delete[] / realloc()
==7126==    at 0x4C2CD9D: operator delete(void*) (vg_replace_malloc.c:576)
==7126==    by 0x1EB5ACA4: std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::~basic_string() (basic_string.h:3498)
==7126==    by 0x5EE61A8: __run_exit_handlers (exit.c:82)
==7126==    by 0x5EE61F4: exit (exit.c:104)
==7126==    by 0x5ECBF4B: (below main) (libc-start.c:321)
==7126==  Address 0x185e2e00 is 0 bytes inside a block of size 67 free'd
==7126==    at 0x4C2CD9D: operator delete(void*) (vg_replace_malloc.c:576)
==7126==    by 0x1EB5ACA4: std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::~basic_string() (basic_string.h:3498)
==7126==    by 0x5EE61A8: __run_exit_handlers (exit.c:82)
==7126==    by 0x5EE61F4: exit (exit.c:104)
==7126==    by 0x5ECBF4B: (below main) (libc-start.c:321)
==7126==  Block was alloc'd at
==7126==    at 0x4C2B4A5: operator new(unsigned long) (vg_replace_malloc.c:334)
==7126==    by 0x1EB5ABBE: allocate (new_allocator.h:111)
==7126==    by 0x1EB5ABBE: std::string::_Rep::_S_create(unsigned long, unsigned 
long, std::allocator<char> const&) (basic_string.tcc:1057)
==7126==    by 0x1EB5B43A: std::string::_Rep::_M_clone(std::allocator<char> 
const&, unsigned long) (basic_string.tcc:1078)
==7126==    by 0x1EB5B8CE: std::string::assign(std::string const&) 
(basic_string.tcc:699)
==7126==    by 0x243E0AB7: arrow::CpuInfo::Init() (cpu-info.cc:232)
==7126==    by 0x243F82DD: 
arrow::compute::FunctionContext::FunctionContext(arrow::MemoryPool*) 
(context.cc:30)
==7126==    by 0x23D7A58C: 
__pyx_pf_7pyarrow_3lib_16_FunctionContext___cinit__(__pyx_obj_7pyarrow_3lib__FunctionContext*)
 (lib.cpp:37562)
==7126==    by 0x23D7A520: 
__pyx_pw_7pyarrow_3lib_16_FunctionContext_1__cinit__(_object*, _object*, 
_object*) (lib.cpp:37543)
==7126==    by 0x23D7A012: 
__pyx_tp_new_7pyarrow_3lib__FunctionContext(_typeobject*, _object*, _object*) 
(lib.cpp:118295)
==7126==    by 0x4F1DE32: type_call (typeobject.c:895)
==7126==    by 0x23C5AA87: __Pyx_PyObject_Call(_object*, _object*, _object*) 
(lib.cpp:133942)
==7126==    by 0x23C99DFD: __Pyx_PyObject_CallNoArg(_object*) (lib.cpp:134640)
{code}

> [Plasma] test_plasma_list test failure on Ubuntu 14.04
> ------------------------------------------------------
>
>                 Key: ARROW-3241
>                 URL: https://issues.apache.org/jira/browse/ARROW-3241
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: Python
>            Reporter: Wes McKinney
>            Priority: Major
>             Fix For: 0.11.0
>
>
> This test fails consistently for me on Ubuntu 14.04 / Python 3.6.5
> {code}
> pyarrow/tests/test_plasma.py::test_plasma_list FAILED                         
>                                                                               
>                             [ 83%]
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > 
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  captured stderr 
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> Allowing the Plasma store to use up to 0.1GB of memory.
> Starting object store with directory /dev/shm and huge page support disabled
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > 
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  traceback 
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>     @pytest.mark.plasma
>     def test_plasma_list():
>         import pyarrow.plasma as plasma
>     
>         with plasma.start_plasma_store(
>                 plasma_store_memory=DEFAULT_PLASMA_STORE_MEMORY) \
>                 as (plasma_store_name, p):
>             plasma_client = plasma.connect(plasma_store_name, "", 0)
>     
>             # Test sizes
>             u, _, _ = create_object(plasma_client, 11, metadata_size=7, 
> seal=False)
>             l1 = plasma_client.list()
>             assert l1[u]["data_size"] == 11
>             assert l1[u]["metadata_size"] == 7
>     
>             # Test ref_count
>             v = plasma_client.put(np.zeros(3))
>             l2 = plasma_client.list()
>             # Ref count has already been released
>             assert l2[v]["ref_count"] == 0
>             a = plasma_client.get(v)
>             l3 = plasma_client.list()
> >           assert l3[v]["ref_count"] == 1
> E           assert 0 == 1
> pyarrow/tests/test_plasma.py:825: AssertionError
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > 
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>  entering PDB 
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > /home/wesm/code/arrow/python/pyarrow/tests/test_plasma.py(825)test_plasma_list()
> -> assert l3[v]["ref_count"] == 1
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to