Have not tried to reproduce in containerized environment Wes.

-Brian

On 4/3/20, 11:42 AM, "Wes McKinney" <[email protected]> wrote:

    EXTERNAL
    
    Are you able to reproduce the issue in a Dockerfile?
    
    Because you are building with gcc 7.4, you need to ensure either that you
    build everything with the gcc < 5 ABI otherwise (if you want the new gcc
    ABI) ensure that the machine where you deploy has libstd++ for gcc 7. Using
    Redhat's devtoolset toolchain also an option.
    
    On Fri, Apr 3, 2020, 10:01 AM Brian Bowman <[email protected]>
    wrote:
    
    > Antoine/Wes,
    >
    > Thanks for your assistance!
    >
    > Here is the relevant info.  We suspect that our production build machines
    > being at RHEL 6.7 is an issue.
    >
    > OS: RHEL 6.7
    > Tools:  gcc 7.4,  bison-3.2, cmake-3.13.1, automake 1.16.1, autoconf 2.69,
    > libtool 2.4.6, pkgcnf 1.1.0, texinfo 6.6, help2man 1.47.11, ld
    > 2.20.51.0.2-5.43.el6
    >
    > Best,
    >
    > -Brian
    >
    > On 4/2/20, 1:22 PM, "Wes McKinney" <[email protected]> wrote:
    >
    >     EXTERNAL
    >
    >     On Thu, Apr 2, 2020 at 12:06 PM Antoine Pitrou <[email protected]>
    > wrote:
    >     >
    >     >
    >     > Hi,
    >     >
    >     > On Thu, 2 Apr 2020 16:56:06 +0000
    >     > Brian Bowman <[email protected]> wrote:
    >     > > A new high-performance file system we are working with returns an
    > error while writing a .parquet file.   The following arrow symbol does not
    > resolve properly and the error is masked.
    >     > >
    >     > >     libparquet.so: undefined symbol:
    > _ZNK5arrow6Status8ToStringB5cxx11Ev
    >     > >
    >     > >      > nm libarrow.so* | grep -i 
ZNK5arrow6Status8ToStringB5cxx11Ev
    >     > >          00000000002b7760 t _ZNK5arrow6Status8ToStringB5cxx11Ev
    >     > >          00000000002b7760 t _ZNK5arrow6Status8ToStringB5cxx11Ev
    >     >
    >     > For clarity, you should use `nm --demangle`.  This will give you the
    >     > actual C++ symbol, i.e. "arrow::Status::ToString[abi:cxx11]() 
const".
    >     >
    >     > > One of our Linux dev/build experts tracked this down to an issue
    > in arrow open source.  He says the lowercase ‘t’ (text) code (… 7760 t 
_ZNK
    > …) in the nm command output is incorrect and it should instead be an
    > uppercase ‘T’.
    >     >
    >     > I have the right output here:
    >     >
    >     > $ nm --demangle --defined-only --dynamic .../libarrow.so | \
    >     >     grep Status::ToString
    >     > 00000000012f1ff0 T arrow::Status::ToString[abi:cxx11]() const
    >     >
    >     > Which toolchain (linker etc.) are you using?
    >
    >     My guess is also that you have a mixed-gcc-toolchain problem. What
    >     compiler/linker (and gcc toolchain, if you built with Clang) was used
    >     to produce libparquet.so (or where did you obtain the package), and
    >     which toolchain are you using to build and link your application?
    >
    >     > Regards
    >     >
    >     > Antoine.
    >     >
    >     >
    >
    >
    >
    

Reply via email to