[
https://issues.apache.org/jira/browse/ARROW-220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15368456#comment-15368456
]
Artem Tarasov commented on ARROW-220:
-------------------------------------
I pinned it down to the conda `libgcc` package being installed.
Apparently, the problem is actually on the conda side:
https://github.com/conda/conda-recipes/issues/558
According to that discussion the workaround is to use latest compilers for
builds, so that the versions are ahead of system libraries (currently 5.2.0).
So more precise steps to reproduce are:
1. Install miniconda on a clean system
2. conda install -c apache/label/dev -y pyarrow libgcc
3. python -c 'import pyarrow.parquet'
> [C++] Build conda artifacts in a build environment with better cross-linux
> ABI compatibility
> --------------------------------------------------------------------------------------------
>
> Key: ARROW-220
> URL: https://issues.apache.org/jira/browse/ARROW-220
> Project: Apache Arrow
> Issue Type: Bug
> Reporter: Artem Tarasov
> Labels: python
>
> Operating system: Linux
> Steps to reproduce:
> {noformat}
> conda create -y -n test_pyarrow python=2.7
> source activate test_pyarrow
> conda install -y -c apache/label/dev pyarrow
> python -c 'import pyarrow.parquet'
> {noformat}
> Fails with
> {noformat}
> *** Error in `python': free(): invalid pointer: 0x00007f275a09bbc0 ***
> Aborted
> {noformat}
> Full backtrace from running python under GDB:
> {noformat}
> #0 0x00007ffff6d39cc9 in __GI_raise (sig=sig@entry=6) at
> ../nptl/sysdeps/unix/sysv/linux/raise.c:56
> #1 0x00007ffff6d3d0d8 in __GI_abort () at abort.c:89
> #2 0x00007ffff6d76394 in __libc_message (do_abort=do_abort@entry=1,
> fmt=fmt@entry=0x7ffff6e84b28 "*** Error in `%s': %s: 0x%s ***\n") at
> ../sysdeps/posix/libc_fatal.c:175
> #3 0x00007ffff6d8266e in malloc_printerr (ptr=<optimized out>,
> str=0x7ffff6e80c19 "free(): invalid pointer", action=1) at malloc.c:4996
> #4 _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at
> malloc.c:3840
> #5 0x00007fffec08f640 in _M_dispose (__a=..., this=<optimized out>) at
> /usr/include/c++/4.9/bits/basic_string.h:249
> #6 ~basic_string (this=0x7fffffffd1a0, __in_chrg=<optimized out>) at
> /usr/include/c++/4.9/bits/basic_string.h:547
> #7 __gnu_cxx::new_allocator<arrow::Field>::construct<arrow::Field<char const
> (&) [1], std::shared_ptr<arrow::UInt8Type> const&> > (this=<optimized out>,
> __p=0x7163d0)
> at /usr/include/c++/4.9/ext/new_allocator.h:120
> #8 0x00007fffec0854a6 in _S_construct<arrow::Field, char const (&) [1],
> std::shared_ptr<arrow::UInt8Type> const&> (__p=0x7163d0, __a=...) at
> /usr/include/c++/4.9/bits/alloc_traits.h:253
> #9 construct<arrow::Field, char const (&) [1],
> std::shared_ptr<arrow::UInt8Type> const&> (__p=0x7163d0, __a=...) at
> /usr/include/c++/4.9/bits/alloc_traits.h:399
> #10 _Sp_counted_ptr_inplace<char const (&) [1],
> std::shared_ptr<arrow::UInt8Type> const&> (__a=..., this=0x7163c0) at
> /usr/include/c++/4.9/bits/shared_ptr_base.h:515
> #11 construct<std::_Sp_counted_ptr_inplace<arrow::Field,
> std::allocator<arrow::Field>, (__gnu_cxx::_Lock_policy)2>,
> std::allocator<arrow::Field> const, char const (&) [1],
> std::shared_ptr<arrow::UInt8Type> const&> (__p=0x7163c0, this=<synthetic
> pointer>) at /usr/include/c++/4.9/ext/new_allocator.h:120
> #12 _S_construct<std::_Sp_counted_ptr_inplace<arrow::Field,
> std::allocator<arrow::Field>, (__gnu_cxx::_Lock_policy)2>,
> std::allocator<arrow::Field> const, char const (&) [1],
> std::shared_ptr<arrow::UInt8Type> const&> (__p=<optimized out>,
> __a=<synthetic pointer>) at /usr/include/c++/4.9/bits/alloc_traits.h:253
> #13 construct<std::_Sp_counted_ptr_inplace<arrow::Field,
> std::allocator<arrow::Field>, (__gnu_cxx::_Lock_policy)2>,
> std::allocator<arrow::Field> const, char const (&) [1],
> std::shared_ptr<arrow::UInt8Type> const&> (__p=<optimized out>,
> __a=<synthetic pointer>) at /usr/include/c++/4.9/bits/alloc_traits.h:399
> #14 __shared_count<arrow::Field, std::allocator<arrow::Field>, char const (&)
> [1], std::shared_ptr<arrow::UInt8Type> const&> (__a=..., this=0x7fffffffd1f8)
> at /usr/include/c++/4.9/bits/shared_ptr_base.h:619
> #15 __shared_ptr<std::allocator<arrow::Field>, char const (&) [1],
> std::shared_ptr<arrow::UInt8Type> const&> (__a=..., __tag=...,
> this=0x7fffffffd1f0) at /usr/include/c++/4.9/bits/shared_ptr_base.h:1090
> #16 shared_ptr<std::allocator<arrow::Field>, char const (&) [1],
> std::shared_ptr<arrow::UInt8Type> const&> (__a=..., __tag=...,
> this=0x7fffffffd1f0) at /usr/include/c++/4.9/bits/shared_ptr.h:316
> #17 allocate_shared<arrow::Field, std::allocator<arrow::Field>, char const
> (&) [1], std::shared_ptr<arrow::UInt8Type> const&> (__a=...) at
> /usr/include/c++/4.9/bits/shared_ptr.h:588
> #18 make_shared<arrow::Field, char const (&) [1],
> std::shared_ptr<arrow::UInt8Type> const&> () at
> /usr/include/c++/4.9/bits/shared_ptr.h:604
> #19 __static_initialization_and_destruction_0 (__initialize_p=1,
> __priority=65535) at
> /home/travis/build/apache/arrow/cpp/src/arrow/parquet/schema.cc:50
> #20 _GLOBAL__sub_I_schema.cc(void) () at
> /home/travis/build/apache/arrow/cpp/src/arrow/parquet/schema.cc:306
> #21 0x00007ffff7dea13a in call_init (l=<optimized out>, argc=argc@entry=3,
> argv=argv@entry=0x7fffffffe0d8, env=env@entry=0x749b80) at dl-init.c:78
> #22 0x00007ffff7dea223 in call_init (env=<optimized out>, argv=<optimized
> out>, argc=<optimized out>, l=<optimized out>) at dl-init.c:36
> #23 _dl_init (main_map=main_map@entry=0x9f5660, argc=3, argv=0x7fffffffe0d8,
> env=0x749b80) at dl-init.c:126
> #24 0x00007ffff7deec70 in dl_open_worker (a=a@entry=0x7fffffffd4b8) at
> dl-open.c:577
> #25 0x00007ffff7de9ff4 in _dl_catch_error
> (objname=objname@entry=0x7fffffffd4a8,
> errstring=errstring@entry=0x7fffffffd4b0,
> mallocedp=mallocedp@entry=0x7fffffffd4a0,
> operate=operate@entry=0x7ffff7dee9a0 <dl_open_worker>,
> args=args@entry=0x7fffffffd4b8) at dl-error.c:187
> #26 0x00007ffff7dee3bb in _dl_open (file=0x71f590
> "/home/lomereiter/miniconda2/envs/test_pyarrow/lib/python2.7/site-packages/pyarrow/parquet.so",
> mode=-2147483646, caller_dlopen=<optimized out>, nsid=-2,
> argc=3, argv=0x7fffffffe0d8, env=0x749b80) at dl-open.c:661
> #27 0x00007ffff75d202b in dlopen_doit (a=a@entry=0x7fffffffd6d0) at
> dlopen.c:66
> #28 0x00007ffff7de9ff4 in _dl_catch_error (objname=0x625d90,
> errstring=0x625d98, mallocedp=0x625d88, operate=0x7ffff75d1fd0 <dlopen_doit>,
> args=0x7fffffffd6d0) at dl-error.c:187
> #29 0x00007ffff75d262d in _dlerror_run (operate=operate@entry=0x7ffff75d1fd0
> <dlopen_doit>, args=args@entry=0x7fffffffd6d0) at dlerror.c:163
> #30 0x00007ffff75d20c1 in __dlopen (file=<optimized out>, mode=<optimized
> out>) at dlopen.c:87
> #31 0x00007ffff7b22dde in _PyImport_GetDynLoadFunc (fqname=<optimized out>,
> shortname=<optimized out>,
> pathname=0x71f590
> "/home/lomereiter/miniconda2/envs/test_pyarrow/lib/python2.7/site-packages/pyarrow/parquet.so",
> fp=0x704920) at Python/dynload_shlib.c:130
> #32 0x00007ffff7b078d8 in _PyImport_LoadDynamicModule (name=0x6b6fe0
> "pyarrow.parquet", pathname=0x71f590
> "/home/lomereiter/miniconda2/envs/test_pyarrow/lib/python2.7/site-packages/pyarrow/parquet.so",
>
> fp=0x704920) at ./Python/importdl.c:42
> #33 0x00007ffff7b05f81 in import_submodule (mod=0x7ffff7e82b08,
> subname=0x6b6fe8 "parquet", fullname=0x6b6fe0 "pyarrow.parquet") at
> Python/import.c:2704
> #34 0x00007ffff7b061f4 in load_next (mod=0x7ffff7e82b08,
> altmod=0x7ffff7e82b08, p_name=<optimized out>, buf=0x6b6fe0
> "pyarrow.parquet", p_buflen=0x7fffffffdb00) at Python/import.c:2519
> #35 0x00007ffff7b06860 in import_module_level (level=<optimized out>,
> fromlist=0x7ffff7da3cd0 <_Py_NoneStruct>, locals=<optimized out>,
> globals=<optimized out>, name=0x0) at Python/import.c:2236
> #36 PyImport_ImportModuleLevel (name=<optimized out>, globals=<optimized
> out>, locals=<optimized out>, fromlist=0x7ffff7da3cd0 <_Py_NoneStruct>,
> level=<optimized out>) at Python/import.c:2292
> #37 0x00007ffff7ae614f in builtin___import__ (self=<optimized out>,
> args=<optimized out>, kwds=<optimized out>) at Python/bltinmodule.c:49
> #38 0x00007ffff7a3cd23 in PyObject_Call (func=0x7ffff7fb6fc8, arg=<optimized
> out>, kw=<optimized out>) at Objects/abstract.c:2546
> #39 0x00007ffff7ae6633 in PyEval_CallObjectWithKeywords (func=0x7ffff7fb6fc8,
> arg=0x7ffff7e9ff70, kw=<optimized out>) at Python/ceval.c:4219
> #40 0x00007ffff7aeb29e in PyEval_EvalFrameEx (f=<optimized out>,
> throwflag=<optimized out>) at Python/ceval.c:2622
> ---Type <return> to continue, or q <return> to quit---
> #41 0x00007ffff7af0a2e in PyEval_EvalCodeEx (co=0x7ffff7eb6e30,
> globals=<optimized out>, locals=<optimized out>, args=<optimized out>,
> argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0)
> at Python/ceval.c:3582
> #42 0x00007ffff7af0b42 in PyEval_EvalCode (co=<optimized out>,
> globals=<optimized out>, locals=<optimized out>) at Python/ceval.c:669
> #43 0x00007ffff7b0f5cc in run_mod (arena=0x641360, flags=<optimized out>,
> locals=0x7ffff7f58168, globals=0x7ffff7f58168, filename=0x7ffff7b3f7ed
> "<string>", mod=<optimized out>) at Python/pythonrun.c:1370
> #44 PyRun_StringFlags (str=0x601010 "import pyarrow.parquet\n", start=257,
> globals=0x7ffff7f58168, locals=0x7ffff7f58168, flags=<optimized out>) at
> Python/pythonrun.c:1333
> #45 0x00007ffff7b108f0 in PyRun_SimpleStringFlags (command=0x601010 "import
> pyarrow.parquet\n", flags=0x7fffffffdfb0) at Python/pythonrun.c:974
> #46 0x00007ffff7b26457 in Py_Main (argc=<optimized out>, argv=<optimized
> out>) at Modules/main.c:589
> #47 0x00007ffff6d24ec5 in __libc_start_main (main=0x400710 <main>, argc=3,
> argv=0x7fffffffe0d8, init=<optimized out>, fini=<optimized out>,
> rtld_fini=<optimized out>, stack_end=0x7fffffffe0c8)
> at libc-start.c:287
> #48 0x0000000000400649 in _start ()
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)