[
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)