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. > > > > > > >
