You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by gr...@apache.org on 2020/04/27 17:57:13 UTC

[kudu] branch branch-1.12.x updated: [binary-jar] Fix macOS binary jar libc++abi error

This is an automated email from the ASF dual-hosted git repository.

granthenke pushed a commit to branch branch-1.12.x
in repository https://gitbox.apache.org/repos/asf/kudu.git


The following commit(s) were added to refs/heads/branch-1.12.x by this push:
     new 80e35e5  [binary-jar] Fix macOS binary jar libc++abi error
80e35e5 is described below

commit 80e35e5f9d6a02010ff65ab0e5bd1fc115d190df
Author: Grant Henke <gr...@apache.org>
AuthorDate: Sun Apr 26 14:29:16 2020 -0500

    [binary-jar] Fix macOS binary jar libc++abi error
    
    The macOS binary jar was broken by commit 458e6ce because
    thirdparty now builds with libc++abi for normal builds.
    
    This resulted in an error like the below when using a macOS binary jar:
        [main] INFO org.apache.kudu.shaded.com.google.gradle.osdetector.OsDetector - os.detected.classifier=osx-x86_64
        [main] INFO org.apache.kudu.test.cluster.KuduBinaryLocator - Using Kudu binary jar directory: /var/folders/3y/nrs6__c10n107f357n7yx2100000gp/T/kudu-binary-jar6249991106299083358
        [main] INFO org.apache.kudu.test.cluster.MiniKuduCluster - Starting process: [/var/folders/3y/nrs6__c10n107f357n7yx2100000gp/T/kudu-binary-jar6249991106299083358/kudu-binary-1.12.0-osx-x86_64/bin/kudu, test, mini_cluster, --serialization=pb]
        [cluster stderr printer] INFO org.apache.kudu.test.cluster.MiniKuduCluster - dyld: Library not loaded: @rpath/libc++abi.1.dylib
        [cluster stderr printer] INFO org.apache.kudu.test.cluster.MiniKuduCluster -   Referenced from: /private/var/folders/3y/nrs6__c10n107f357n7yx2100000gp/T/kudu-binary-jar6249991106299083358/kudu-binary-1.12.0-osx-x86_64/lib/libglog.0.dylib
        [cluster stderr printer] INFO org.apache.kudu.test.cluster.MiniKuduCluster -   Reason: image not found
        [main] ERROR org.apache.kudu.test.junit.RetryRule - org.apache.kudu.examples.ExampleTest.testCreateExampleTable: failed attempt 1
        java.io.EOFException
    
    This patch fixes the issue by adjusting the `PAT_MACOS_LIB_EXCLUDE`
    regex to ensure the libc++abi library is not excluded from the jar.
    Additionaly it adjusts the licence file to include the libc++abi.
    
    Change-Id: I395fd39d62fd7bfcd2aa2b0781d77c3a16e19d4b
    Reviewed-on: http://gerrit.cloudera.org:8080/15812
    Tested-by: Kudu Jenkins
    Reviewed-by: Hao Hao <ha...@cloudera.com>
    (cherry picked from commit ae4b71548726314a0bc0a5258de454d1a65d08a3)
    Reviewed-on: http://gerrit.cloudera.org:8080/15813
    Tested-by: Grant Henke <gr...@apache.org>
    Reviewed-by: Alexey Serbin <as...@cloudera.com>
---
 build-support/mini-cluster/LICENSE-BINARY-JAR-OSX.txt            | 4 ++++
 build-support/mini-cluster/relocate_binaries_for_mini_cluster.py | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/build-support/mini-cluster/LICENSE-BINARY-JAR-OSX.txt b/build-support/mini-cluster/LICENSE-BINARY-JAR-OSX.txt
index 46c17f6..3da6156 100644
--- a/build-support/mini-cluster/LICENSE-BINARY-JAR-OSX.txt
+++ b/build-support/mini-cluster/LICENSE-BINARY-JAR-OSX.txt
@@ -10,3 +10,7 @@ OpenSSL: OpenSSL software license
 libraries: libssl, libcrypto
 Source: Homebrew repository
 
+--------------------------------------------------------------------------------
+LLVM: Apache 2.0 License
+libraries: libc\+\+abi
+Source: LLVM source tarball
diff --git a/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py b/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py
index f3c0aad..c17e911 100755
--- a/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py
+++ b/build-support/mini-cluster/relocate_binaries_for_mini_cluster.py
@@ -91,7 +91,7 @@ PAT_MACOS_LIB_EXCLUDE = re.compile(r"""(AppleFSCompression$|
                                         libSystem|
                                         libapple_nghttp2|
                                         libarchive|
-                                        libc\+\+|
+                                        libc\+\+\.|
                                         libenergytrace|
                                         libicucore|
                                         libncurses|