Public bug reported: gRPC 1.3.2 (bionic) has two shared objects: libgrpc.so.3.0.0 and libgrpc++.so.1.3.2, where the latter depends on the former, and both contain many overlapping functions which results in crashes and other unexpected behavior.
The simplest way to reproduce the crash is to build and run official gRPC C++ example: https://grpc.io/docs/quickstart/cpp.html#build-the- example One particular example that triggers a crash would be grpc_slice_intern() function that uses initialized global variable g_shards in libgrpc's BSS section in the first invocation and uninitialized (zeroed) g_shards variable in libgrpc++'s BSS section in the second. This is due to "-Bsymbolic-functions" essentially creating two "worlds" by preventing the code that calls these functions from consulting the PLT and choosing only one "implementation". This linkage issue was fixed in the newer gRPC versions. Compare these two, for example: * 1.3.x: https://github.com/grpc/grpc/blob/70ae8440a2441e8f3e95447a5d645e05bde35921/CMakeLists.txt#L2185-L2356 * 1.15.x: https://github.com/grpc/grpc/blob/1a60e6971f428323245a930031ad267bb3142ba4/CMakeLists.txt#L2744-L2787 I guess the likely fix would be to bump gRPC version or define DEB_LDFLAGS_MAINT_STRIP variable as explained here: http://www.osdir.com /ubuntu-developers/msg05619.html ** Affects: grpc (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1797000 Title: grpc library crashes due to -Wl,-Bsymbolic-functions To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/grpc/+bug/1797000/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
