Hello Daniel Becker, Michael Smith, Impala Public Jenkins,
I'd like you to reexamine a change. Please visit
http://gerrit.cloudera.org:8080/19104
to look at the new patch set (#3).
Change subject: IMPALA-11640/IMPALA-11641: Workaround errors in shared library
build on Ubuntu 18+
......................................................................
IMPALA-11640/IMPALA-11641: Workaround errors in shared library build on Ubuntu
18+
Building with -so on Ubuntu 18 or higher fails due to
an issue finding dlopen in unwind_safeness.cc:
unwind_safeness.cc:76] Check failed: !error failed to find symbol dlopen
unwind_safeness.cc is using dlsym to load the dlopen symbol
so that it can wrap it with its own dlopen code. The Impala
build has issues with the ordering of libraries, and this
code does not find dlopen. This has previously happened with
the dl_iterate_phdr symbol in Kudu.
This is a problem starting with Ubuntu 18.04, because Ubuntu 16.04
uses a version of glibc that has a bug in reporting this
error. Ubuntu 18.04 uses a newer glibc with a fix for the bug. See
https://sourceware.org/bugzilla/show_bug.cgi?id=19509 .
As a workaround for this issue, this tolerates not finding
dlopen/dlclose when building with shared libraries. Impala shared
libraries are not used in production, so this bypasses the issue.
This also adds extra validation to make sure the symbols are non-null.
Specifically, this adds another CHECK in dlsym_or_die to verify
that the symbol is non-null. This also adds a DCHECK to verify that
the symbol is non-null at dereference.
This also fixes an issue where Boost was always using static
libraries, even for shared library builds. This makes Boost use
shared libraries for shared library builds.
Testing:
- The shared library build passes on Ubuntu 18 and Ubuntu 20
- Impala can boot and run queries with shared libraries
Change-Id: Iaab196b3d669ccc12854a98d0dbfbae2b9b91244
---
M CMakeLists.txt
M be/CMakeLists.txt
M be/src/kudu/util/debug/unwind_safeness.cc
3 files changed, 42 insertions(+), 2 deletions(-)
git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/04/19104/3
--
To view, visit http://gerrit.cloudera.org:8080/19104
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: Iaab196b3d669ccc12854a98d0dbfbae2b9b91244
Gerrit-Change-Number: 19104
Gerrit-PatchSet: 3
Gerrit-Owner: Joe McDonnell <[email protected]>
Gerrit-Reviewer: Daniel Becker <[email protected]>
Gerrit-Reviewer: Impala Public Jenkins <[email protected]>
Gerrit-Reviewer: Joe McDonnell <[email protected]>
Gerrit-Reviewer: Michael Smith <[email protected]>