[ https://issues.apache.org/jira/browse/ARROW-220?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15359792#comment-15359792 ]
Wes McKinney edited comment on ARROW-220 at 7/1/16 10:58 PM: ------------------------------------------------------------- At this moment, I am seeing on my system: {code} $ python -c 'import pyarrow.parquet' Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/wesm/anaconda3/envs/test_pyarrow/lib/python2.7/site-packages/pyarrow/../../.././libparquet.so) {code} I'm on Ubuntu 14.04, where gcc 4.8 is the default library. This will be solved by statically linking libstdc++ (since we are building with gcc 4.9 in Travis CI) -- I'm going to try adding the static linking again now that PARQUET-489 has been taken care of (so there should not be any symbol conflicts) to see if we can get a working conda dev build. The longer term solution here is to move our conda artifact builds to centos6/rhel6 with the devtoolset. See for example: https://github.com/conda-forge/docker-images/blob/master/linux-anvil/Dockerfile We might even put the builds on conda-forge so we can post "stable" dev builds (not actually official releases). was (Author: wesmckinn): At this moment, I am seeing on my system: {code} $ python -c 'import pyarrow.parquet' Traceback (most recent call last): File "<string>", line 1, in <module> ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/wesm/anaconda3/envs/test_pyarrow/lib/python2.7/site-packages/pyarrow/../../.././libparquet.so) {code} I'm on Ubuntu 14.04, where gcc 4.8 is the default library. This will be solved by statically linking libstdc++ (since we are building with gcc 4.9 in Travis CI) -- I'm going to try adding the static linking again now that PARQUET-489 has been taken care of (so there will be fewer symbol conflicts) to see if we can get a working conda dev build. The longer term solution here is to move our conda artifact builds to centos6/rhel6 with the devtoolset. See for example: https://github.com/conda-forge/docker-images/blob/master/linux-anvil/Dockerfile We might even put the builds on conda-forge so we can post "stable" dev builds (not actually official releases). > Pyarrow installed through conda segfaults on import > --------------------------------------------------- > > 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)