Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
Impala 4.2.0
-
None
-
ghx-label-2
Description
When building on Ubuntu 18 or Ubuntu 20 with shared libraries (-so), the build fails because the unifiedbetests binary fails to run as part of the validate-unified-backend-test-filters.py invocation:
16:39:22 F1005 23:39:22.237543 88570 unwind_safeness.cc:76] Check failed: !error failed to find symbol dlopen: /home/ubuntu/Impala/be/build/release/kudu_util/libkudu_util.so: undefined symbol: dlopen 16:39:22 FAILED: Unified backend test executable returned an error when trying 16:39:22 to list tests. 16:39:22 Command: /home/ubuntu/Impala/bin/run-binary.sh /home/ubuntu/Impala/be/build/release//service/unifiedbetests --gtest_list_tests 16:39:22 Return Code: -6 16:39:22 stdout: 16:39:22 16:39:22 stderr: 16:39:22 None
When building locally, other binaries also fail to execute with the same message.
One theory is that the code in unwind_safeness.cc has never worked, but Ubuntu 16.04 is impacted by a glibc bug that prevents it from setting an error (https://sourceware.org/bugzilla/show_bug.cgi?id=19509). Newer Ubuntu correctly report the error, which leads to the failure.
One option is to change unwind_safeness.cc to tolerate missing dlopen/dlclose. Impala doesn't ship using shared libraries. If the unwind_safeness.cc variables that contain dlopen/dlclose are actually used after a failure to resolve dlopen/dlclose, then it would result in a SIGSEGV and it would be very obvious.