grpc / grpc-java

The Java gRPC implementation. HTTP/2 based RPC
https://grpc.io/docs/languages/java/
Apache License 2.0
11.44k stars 3.85k forks source link

Conscrypt fails when building grpc-java on Power #6678

Open sarveshtamba opened 4 years ago

sarveshtamba commented 4 years ago

I tried building grpc-java on Power by skipping Android and codegen specific stuff as mentioned here - https://github.com/grpc/grpc-java/blob/master/COMPILING.md, I am facing the following errors:

> Task :grpc-interop-testing:test
[jetty-alpn-agent] Could not find a matching alpn-boot JAR for Java version: 11.0.6
io.grpc.testing.integration.Http2OkHttpTest > classMethod FAILED
    java.lang.RuntimeException: Could not create Conscrypt provider
        at io.grpc.internal.testing.TestUtils.installConscryptIfAvailable(TestUtils.java:180)
        at io.grpc.testing.integration.Http2OkHttpTest.loadConscrypt(Http2OkHttpTest.java:63)
        Caused by:
        java.lang.reflect.InvocationTargetException
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at io.grpc.internal.ConscryptLoader.newProvider(ConscryptLoader.java:78)
            at io.grpc.internal.testing.TestUtils.installConscryptIfAvailable(TestUtils.java:171)
            ... 1 more
            Caused by:
            java.lang.UnsatisfiedLinkError: no conscrypt_openjdk_jni-linux-ppcle_64 in java.library.path: [/usr/java/packages/lib, /usr/lib64, /lib64, /lib, /usr/lib]
306 tests completed, 1 failed, 20 skipped
> Task :grpc-interop-testing:test FAILED
sarveshtamba commented 4 years ago

Built Conscrypt on Power using the buildscript at https://github.com/ppc64le/build-scripts/blob/master/conscrypt/conscrypt.sh Installed the same using steps mentioned at https://github.com/ppc64le/build-scripts/blob/master/spring-boot/spring-boot.sh

Command to install Conscrypt:- ./mvnw install:install-file -Dfile=/root/sarvesh/conscrypt/conscrypt/openjdk/build/libs/conscrypt-openjdk-2.3.0-SNAPSHOT.jar -DgroupId=org.conscrypt -DartifactId=conscrypt-openjdk-uber -Dversion=2.3.0-SNAPSHOT -Dpackaging=jar -DgeneratePom=true

However still facing the same issue. Any inputs will be highly appreciated.

ejona86 commented 4 years ago

Basically we just need to ignore the error for ppc within TestUtils.installConscryptIfAvailable. If x86 sees a UnsatisfiedLinkError we do want to fail though, since we do expect that to work. It's not immediately obvious which conditions would be best to handle that.

ejona86 commented 4 years ago

Note: the main reason to build on ppc is to build the codegen. Builds on x86 work fine on ppc, except for codegen. And we can even do codegen if we copy what what done earlier for aarch64 in https://github.com/grpc/grpc-java/pull/6441 .

(That isn't to say I don't think this should be addressed; I do feel you should be able to build on any platform.)

sarveshtamba commented 4 years ago

Hi @ejona86 Thanks for the response. I tried the below changes for test purposes on ppc64le:

[root@p006vm32 grpc-java]# git diff
diff --git a/testing/src/main/java/io/grpc/internal/testing/TestUtils.java b/testing/src/main/java/io/grpc/internal/testing/TestUtils.java
index 6b467eff5..ab53817f1 100644
--- a/testing/src/main/java/io/grpc/internal/testing/TestUtils.java
+++ b/testing/src/main/java/io/grpc/internal/testing/TestUtils.java
@@ -169,6 +169,7 @@ public class TestUtils {
     Provider provider;
     try {
       provider = ConscryptLoader.newProvider();
+      Security.addProvider(provider);
     } catch (Throwable t) {
       Throwable root = Throwables.getRootCause(t);
       // Conscrypt uses a newer version of glibc than available on RHEL 6
@@ -177,9 +178,9 @@ public class TestUtils {
         conscryptInstallAttempted = true;
         return;
       }
-      throw new RuntimeException("Could not create Conscrypt provider", t);
+//      throw new RuntimeException("Could not create Conscrypt provider", t);
     }
-    Security.addProvider(provider);
+  //  Security.addProvider(provider);
     conscryptInstallAttempted = true;
   }

However now I am facing the below errors:-

[jetty-alpn-agent] Could not find a matching alpn-boot JAR for Java version: 11.0.6

io.grpc.netty.NettyClientTransportTest > tlsNegotiationServerExecutorShouldSucceed FAILED
    java.util.concurrent.TimeoutException: Waited 10 seconds (plus 117694 nanoseconds delay) for com.google.common.util.concurrent.SettableFuture@34e9523e[status=PENDING]
        at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:494)
        at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:97)
        at io.grpc.netty.NettyClientTransportTest$Rpc.waitForResponse(NettyClientTransportTest.java:834)
        at io.grpc.netty.NettyClientTransportTest.tlsNegotiationServerExecutorShouldSucceed(NettyClientTransportTest.java:712)

io.grpc.netty.NettyClientTransportTest > tlsNegotiationFailurePropagatesToStatus FAILED
    expected to contain: SSLV3_ALERT_HANDSHAKE_FAILURE
    but was            : Received fatal alert: bad_certificate
        at io.grpc.netty.NettyClientTransportTest.tlsNegotiationFailurePropagatesToStatus(NettyClientTransportTest.java:329)

363 tests completed, 2 failed, 15 skipped

> Task :grpc-netty:test FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':grpc-netty:test'.
> There were failing tests. See the report at: file:///root/sarvesh/grpc-java/netty/build/reports/tests/test/index.html

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 44s
177 actionable tasks: 4 executed, 173 up-to-date

I tried to increase the timeout in netty/src/test/java/io/grpc/netty/NettyClientTransportTest.java, but it does not help either. Am I missing the certificates or any other related stuff?

sarveshtamba commented 4 years ago

@ejona86 I have finally managed to build grpc-java on Power.

[root@p006vm32 grpc-java]# ./gradlew build -PskipAndroid=true -PskipCodegen=true
*** Skipping the build of codegen and compilation of proto files because skipCodegen=true
  * Skipping the build of Android projects because skipAndroid=true
> Task :grpc-context:compileJava UP-TO-DATE
> Task :grpc-context:processResources NO-SOURCE
> Task :grpc-context:classes UP-TO-DATE
> Task :grpc-context:jar UP-TO-DATE
> Task :grpc-api:compileJava UP-TO-DATE
> Task :grpc-api:processResources NO-SOURCE
> Task :grpc-api:classes UP-TO-DATE
> Task :grpc-api:jar UP-TO-DATE
> Task :grpc-auth:compileJava UP-TO-DATE
> Task :grpc-auth:processResources NO-SOURCE
> Task :grpc-auth:classes UP-TO-DATE
> Task :grpc-auth:jar UP-TO-DATE
> Task :grpc-core:compileJava UP-TO-DATE
> Task :grpc-core:processResources UP-TO-DATE
> Task :grpc-core:classes UP-TO-DATE
> Task :grpc-core:jar UP-TO-DATE
> Task :grpc-netty:compileJava UP-TO-DATE
> Task :grpc-netty:processResources UP-TO-DATE
> Task :grpc-netty:classes UP-TO-DATE
> Task :grpc-netty:jar UP-TO-DATE
> Task :grpc-okhttp:compileJava UP-TO-DATE
> Task :grpc-okhttp:processResources UP-TO-DATE
> Task :grpc-okhttp:classes UP-TO-DATE
> Task :grpc-okhttp:jar UP-TO-DATE
> Task :grpc-protobuf-lite:extractIncludeProto UP-TO-DATE
> Task :grpc-protobuf-lite:extractProto UP-TO-DATE
> Task :grpc-protobuf-lite:generateProto UP-TO-DATE
> Task :grpc-protobuf-lite:compileJava UP-TO-DATE
> Task :grpc-protobuf-lite:processResources NO-SOURCE
> Task :grpc-protobuf-lite:classes UP-TO-DATE
> Task :grpc-protobuf-lite:jar UP-TO-DATE
> Task :grpc-protobuf:extractIncludeProto UP-TO-DATE
> Task :grpc-protobuf:extractProto UP-TO-DATE
> Task :grpc-protobuf:generateProto UP-TO-DATE
> Task :grpc-protobuf:compileJava UP-TO-DATE
> Task :grpc-protobuf:processResources NO-SOURCE
> Task :grpc-protobuf:classes UP-TO-DATE
> Task :grpc-protobuf:jar UP-TO-DATE
> Task :grpc-stub:compileJava UP-TO-DATE
> Task :grpc-stub:processResources NO-SOURCE
> Task :grpc-stub:classes UP-TO-DATE
> Task :grpc-stub:jar UP-TO-DATE
> Task :grpc-testing:compileJava UP-TO-DATE
> Task :grpc-testing:processResources UP-TO-DATE
> Task :grpc-testing:classes UP-TO-DATE
> Task :grpc-testing:jar UP-TO-DATE
> Task :grpc-all:compileJava NO-SOURCE
> Task :grpc-all:processResources NO-SOURCE
> Task :grpc-all:classes UP-TO-DATE
> Task :grpc-all:jar UP-TO-DATE
> Task :grpc-all:assemble UP-TO-DATE
> Task :grpc-all:checkstyleMain NO-SOURCE
> Task :grpc-all:compileTestJava NO-SOURCE
> Task :grpc-all:processTestResources NO-SOURCE
> Task :grpc-all:testClasses UP-TO-DATE
> Task :grpc-all:checkstyleTest NO-SOURCE
> Task :grpc-all:test NO-SOURCE
> Task :grpc-all:check UP-TO-DATE
> Task :grpc-all:build UP-TO-DATE
> Task :grpc-alts:extractIncludeProto UP-TO-DATE
> Task :grpc-alts:extractProto UP-TO-DATE
> Task :grpc-alts:generateProto UP-TO-DATE
> Task :grpc-alts:compileJava UP-TO-DATE
> Task :grpc-alts:processResources UP-TO-DATE
> Task :grpc-alts:classes UP-TO-DATE
> Task :grpc-alts:jar UP-TO-DATE
> Task :grpc-alts:assemble UP-TO-DATE
> Task :grpc-alts:animalsnifferMain UP-TO-DATE
> Task :grpc-testing-proto:extractIncludeProto UP-TO-DATE
> Task :grpc-testing-proto:extractProto UP-TO-DATE
> Task :grpc-testing-proto:generateProto UP-TO-DATE
> Task :grpc-testing-proto:compileJava UP-TO-DATE
> Task :grpc-testing-proto:processResources UP-TO-DATE
> Task :grpc-testing-proto:classes UP-TO-DATE
> Task :grpc-testing-proto:jar UP-TO-DATE
> Task :grpc-alts:extractIncludeTestProto UP-TO-DATE
> Task :grpc-alts:extractTestProto UP-TO-DATE
> Task :grpc-alts:generateTestProto UP-TO-DATE
> Task :grpc-alts:compileTestJava UP-TO-DATE
> Task :grpc-alts:processTestResources NO-SOURCE
> Task :grpc-alts:testClasses UP-TO-DATE
> Task :grpc-alts:animalsnifferTest UP-TO-DATE
> Task :grpc-alts:checkstyleMain UP-TO-DATE
> Task :grpc-alts:checkstyleTest UP-TO-DATE
> Task :grpc-grpclb:extractIncludeProto UP-TO-DATE
> Task :grpc-grpclb:extractProto UP-TO-DATE
> Task :grpc-grpclb:generateProto UP-TO-DATE
> Task :grpc-grpclb:compileJava UP-TO-DATE
> Task :grpc-grpclb:processResources UP-TO-DATE
> Task :grpc-grpclb:classes UP-TO-DATE
> Task :grpc-grpclb:jar UP-TO-DATE
> Task :grpc-alts:test UP-TO-DATE
> Task :grpc-alts:check UP-TO-DATE
> Task :grpc-alts:build UP-TO-DATE
> Task :grpc-api:assemble UP-TO-DATE
> Task :grpc-api:compileJmhJava UP-TO-DATE
> Task :grpc-api:processJmhResources NO-SOURCE
> Task :grpc-api:jmhClasses UP-TO-DATE
> Task :grpc-api:animalsnifferJmh UP-TO-DATE
> Task :grpc-api:animalsnifferMain UP-TO-DATE
> Task :grpc-context:compileTestJava UP-TO-DATE
> Task :grpc-context:processTestResources NO-SOURCE
> Task :grpc-context:testClasses UP-TO-DATE
> Task :grpc-api:compileTestJava UP-TO-DATE
> Task :grpc-api:processTestResources UP-TO-DATE
> Task :grpc-api:testClasses UP-TO-DATE
> Task :grpc-api:animalsnifferTest UP-TO-DATE
> Task :grpc-api:checkstyleJmh UP-TO-DATE
> Task :grpc-api:checkstyleMain UP-TO-DATE
> Task :grpc-api:checkstyleTest UP-TO-DATE
> Task :grpc-api:test UP-TO-DATE
> Task :grpc-api:check UP-TO-DATE
> Task :grpc-api:build UP-TO-DATE
> Task :grpc-auth:assemble UP-TO-DATE
> Task :grpc-auth:animalsnifferMain UP-TO-DATE
> Task :grpc-auth:compileTestJava UP-TO-DATE
> Task :grpc-auth:processTestResources NO-SOURCE
> Task :grpc-auth:testClasses UP-TO-DATE
> Task :grpc-auth:animalsnifferTest UP-TO-DATE
> Task :grpc-auth:checkstyleMain UP-TO-DATE
> Task :grpc-auth:checkstyleTest UP-TO-DATE
> Task :grpc-auth:test UP-TO-DATE
> Task :grpc-auth:check UP-TO-DATE
> Task :grpc-auth:build UP-TO-DATE
> Task :grpc-benchmarks:benchmark_worker UP-TO-DATE
> Task :grpc-benchmarks:extractIncludeProto UP-TO-DATE
> Task :grpc-benchmarks:extractProto UP-TO-DATE
> Task :grpc-benchmarks:generateProto UP-TO-DATE
> Task :grpc-benchmarks:compileJava UP-TO-DATE
> Task :grpc-benchmarks:processResources UP-TO-DATE
> Task :grpc-benchmarks:classes UP-TO-DATE
> Task :grpc-benchmarks:jar UP-TO-DATE
> Task :grpc-benchmarks:openloop_client UP-TO-DATE
> Task :grpc-benchmarks:qps_client UP-TO-DATE
> Task :grpc-benchmarks:qps_server UP-TO-DATE
> Task :grpc-benchmarks:startScripts SKIPPED
> Task :grpc-benchmarks:distTar UP-TO-DATE
> Task :grpc-benchmarks:distZip UP-TO-DATE
> Task :grpc-benchmarks:assemble UP-TO-DATE
> Task :grpc-benchmarks:extractIncludeJmhProto UP-TO-DATE
> Task :grpc-benchmarks:extractJmhProto UP-TO-DATE
> Task :grpc-benchmarks:generateJmhProto UP-TO-DATE
> Task :grpc-benchmarks:extractIncludeTestProto UP-TO-DATE
> Task :grpc-benchmarks:extractTestProto UP-TO-DATE
> Task :grpc-benchmarks:generateTestProto UP-TO-DATE
> Task :grpc-benchmarks:compileTestJava UP-TO-DATE
> Task :grpc-benchmarks:processTestResources NO-SOURCE
> Task :grpc-benchmarks:testClasses UP-TO-DATE
> Task :grpc-benchmarks:compileJmhJava UP-TO-DATE
> Task :grpc-benchmarks:processJmhResources NO-SOURCE
> Task :grpc-benchmarks:jmhClasses UP-TO-DATE
> Task :grpc-benchmarks:checkstyleJmh UP-TO-DATE
> Task :grpc-benchmarks:checkstyleMain UP-TO-DATE
> Task :grpc-benchmarks:checkstyleTest UP-TO-DATE
> Task :grpc-benchmarks:test UP-TO-DATE
> Task :grpc-benchmarks:check UP-TO-DATE
> Task :grpc-benchmarks:build UP-TO-DATE
> Task :grpc-bom:assemble UP-TO-DATE
> Task :grpc-bom:check UP-TO-DATE
> Task :grpc-bom:build UP-TO-DATE
> Task :grpc-census:compileJava UP-TO-DATE
> Task :grpc-census:processResources NO-SOURCE
> Task :grpc-census:classes UP-TO-DATE
> Task :grpc-census:jar UP-TO-DATE
> Task :grpc-census:assemble UP-TO-DATE
> Task :grpc-census:checkstyleMain UP-TO-DATE
> Task :grpc-core:compileTestJava UP-TO-DATE
> Task :grpc-core:processTestResources UP-TO-DATE
> Task :grpc-core:testClasses UP-TO-DATE
> Task :grpc-census:compileTestJava UP-TO-DATE
> Task :grpc-census:processTestResources NO-SOURCE
> Task :grpc-census:testClasses UP-TO-DATE
> Task :grpc-census:checkstyleTest UP-TO-DATE
> Task :grpc-census:test UP-TO-DATE
> Task :grpc-census:check UP-TO-DATE
> Task :grpc-census:build UP-TO-DATE
> Task :grpc-context:assemble UP-TO-DATE
> Task :grpc-context:compileJmhJava UP-TO-DATE
> Task :grpc-context:processJmhResources NO-SOURCE
> Task :grpc-context:jmhClasses UP-TO-DATE
> Task :grpc-context:animalsnifferJmh UP-TO-DATE
> Task :grpc-context:animalsnifferMain UP-TO-DATE
> Task :grpc-context:animalsnifferTest UP-TO-DATE
> Task :grpc-context:checkstyleJmh UP-TO-DATE
> Task :grpc-context:checkstyleMain UP-TO-DATE
> Task :grpc-context:checkstyleTest UP-TO-DATE
> Task :grpc-context:test UP-TO-DATE
> Task :grpc-context:check UP-TO-DATE
> Task :grpc-context:build UP-TO-DATE
> Task :grpc-core:assemble UP-TO-DATE
> Task :grpc-core:animalsnifferMain UP-TO-DATE
> Task :grpc-core:animalsnifferTest UP-TO-DATE
> Task :grpc-core:compileJmhJava UP-TO-DATE
> Task :grpc-core:processJmhResources NO-SOURCE
> Task :grpc-core:jmhClasses UP-TO-DATE
> Task :grpc-core:checkstyleJmh UP-TO-DATE
> Task :grpc-core:checkstyleMain UP-TO-DATE
> Task :grpc-core:checkstyleTest UP-TO-DATE
> Task :grpc-core:test UP-TO-DATE
> Task :grpc-core:check UP-TO-DATE
> Task :grpc-core:build UP-TO-DATE
> Task :grpc-services:extractIncludeProto UP-TO-DATE
> Task :grpc-services:extractProto UP-TO-DATE
> Task :grpc-services:generateProto UP-TO-DATE
> Task :grpc-services:compileJava UP-TO-DATE
> Task :grpc-services:processResources UP-TO-DATE
> Task :grpc-services:classes UP-TO-DATE
> Task :grpc-services:jar UP-TO-DATE
> Task :grpc-xds:extractIncludeProto UP-TO-DATE
> Task :grpc-xds:extractProto UP-TO-DATE
> Task :grpc-xds:generateProto UP-TO-DATE
> Task :grpc-xds:compileJava UP-TO-DATE
> Task :grpc-xds:processResources UP-TO-DATE
> Task :grpc-xds:classes UP-TO-DATE
> Task :grpc-xds:jar UP-TO-DATE
> Task :grpc-interop-testing:extractIncludeProto UP-TO-DATE
> Task :grpc-interop-testing:extractProto UP-TO-DATE
> Task :grpc-interop-testing:generateProto UP-TO-DATE
> Task :grpc-interop-testing:compileJava UP-TO-DATE
> Task :grpc-interop-testing:processResources UP-TO-DATE
> Task :grpc-interop-testing:classes UP-TO-DATE
> Task :grpc-interop-testing:jar UP-TO-DATE
> Task :grpc-gae-interop-testing-jdk8:compileJava UP-TO-DATE
> Task :grpc-gae-interop-testing-jdk8:processResources NO-SOURCE
> Task :grpc-gae-interop-testing-jdk8:classes UP-TO-DATE
> Task :grpc-gae-interop-testing-jdk8:war UP-TO-DATE
> Task :grpc-gae-interop-testing-jdk8:explodeWar UP-TO-DATE
> Task :grpc-gae-interop-testing-jdk8:assemble UP-TO-DATE
> Task :grpc-gae-interop-testing-jdk8:checkstyleMain UP-TO-DATE
> Task :grpc-gae-interop-testing-jdk8:compileTestJava NO-SOURCE
> Task :grpc-gae-interop-testing-jdk8:processTestResources NO-SOURCE
> Task :grpc-gae-interop-testing-jdk8:testClasses UP-TO-DATE
> Task :grpc-gae-interop-testing-jdk8:checkstyleTest NO-SOURCE
> Task :grpc-gae-interop-testing-jdk8:test NO-SOURCE
> Task :grpc-gae-interop-testing-jdk8:check UP-TO-DATE
> Task :grpc-gae-interop-testing-jdk8:build UP-TO-DATE
> Task :grpc-grpclb:assemble UP-TO-DATE
> Task :grpc-grpclb:checkstyleMain UP-TO-DATE
> Task :grpc-grpclb:extractIncludeTestProto UP-TO-DATE
> Task :grpc-grpclb:extractTestProto UP-TO-DATE
> Task :grpc-grpclb:generateTestProto UP-TO-DATE
> Task :grpc-grpclb:compileTestJava UP-TO-DATE
> Task :grpc-grpclb:processTestResources NO-SOURCE
> Task :grpc-grpclb:testClasses UP-TO-DATE
> Task :grpc-grpclb:checkstyleTest UP-TO-DATE
> Task :grpc-grpclb:test UP-TO-DATE
> Task :grpc-grpclb:check UP-TO-DATE
> Task :grpc-grpclb:build UP-TO-DATE
> Task :grpc-interop-testing:grpclb_long_lived_affinity_test_client UP-TO-DATE
> Task :grpc-interop-testing:http2_client UP-TO-DATE
> Task :grpc-interop-testing:reconnect_test_client UP-TO-DATE
> Task :grpc-interop-testing:startScripts SKIPPED
> Task :grpc-interop-testing:stresstest_client UP-TO-DATE
> Task :grpc-interop-testing:test_client UP-TO-DATE
> Task :grpc-interop-testing:test_server UP-TO-DATE
> Task :grpc-interop-testing:xds_test_client UP-TO-DATE
> Task :grpc-interop-testing:xds_test_server UP-TO-DATE
> Task :grpc-interop-testing:distTar
> Task :grpc-interop-testing:distZip
> Task :grpc-interop-testing:assemble
> Task :grpc-interop-testing:checkstyleMain UP-TO-DATE
> Task :grpc-interop-testing:extractIncludeTestProto UP-TO-DATE
> Task :grpc-interop-testing:extractTestProto UP-TO-DATE
> Task :grpc-interop-testing:generateTestProto UP-TO-DATE
> Task :grpc-interop-testing:compileTestJava UP-TO-DATE
> Task :grpc-interop-testing:processTestResources NO-SOURCE
> Task :grpc-interop-testing:testClasses UP-TO-DATE
> Task :grpc-interop-testing:checkstyleTest UP-TO-DATE
> Task :grpc-interop-testing:test UP-TO-DATE
> Task :grpc-interop-testing:check UP-TO-DATE
> Task :grpc-interop-testing:build
> Task :grpc-netty:assemble UP-TO-DATE
> Task :grpc-netty:compileTestJava UP-TO-DATE
> Task :grpc-netty:processTestResources NO-SOURCE
> Task :grpc-netty:testClasses UP-TO-DATE
> Task :grpc-netty:compileJmhJava UP-TO-DATE
> Task :grpc-netty:processJmhResources NO-SOURCE
> Task :grpc-netty:jmhClasses UP-TO-DATE
> Task :grpc-netty:animalsnifferJmh UP-TO-DATE
> Task :grpc-netty:animalsnifferMain UP-TO-DATE
> Task :grpc-netty:animalsnifferTest UP-TO-DATE
> Task :grpc-netty:checkstyleJmh UP-TO-DATE
> Task :grpc-netty:checkstyleMain UP-TO-DATE
> Task :grpc-netty:checkstyleTest UP-TO-DATE
> Task :grpc-netty:test UP-TO-DATE
> Task :grpc-netty:check UP-TO-DATE
> Task :grpc-netty:build UP-TO-DATE
> Task :grpc-netty-shaded:compileJava NO-SOURCE
> Task :grpc-netty-shaded:processResources NO-SOURCE
> Task :grpc-netty-shaded:classes UP-TO-DATE
> Task :grpc-netty-shaded:jar UP-TO-DATE
> Task :grpc-netty-shaded:assemble UP-TO-DATE
> Task :grpc-netty-shaded:checkstyleMain NO-SOURCE
> Task :grpc-netty-shaded:compileTestJava NO-SOURCE
> Task :grpc-netty-shaded:processTestResources NO-SOURCE
> Task :grpc-netty-shaded:testClasses UP-TO-DATE
> Task :grpc-netty-shaded:checkstyleTest NO-SOURCE
> Task :grpc-netty-shaded:shadowJar UP-TO-DATE
> Task :grpc-netty-shaded:compileTestShadowJava UP-TO-DATE
> Task :grpc-netty-shaded:processTestShadowResources NO-SOURCE
> Task :grpc-netty-shaded:testShadowClasses UP-TO-DATE
> Task :grpc-netty-shaded:checkstyleTestShadow UP-TO-DATE
> Task :grpc-netty-shaded:testShadow UP-TO-DATE
> Task :grpc-netty-shaded:test NO-SOURCE
> Task :grpc-netty-shaded:check UP-TO-DATE
> Task :grpc-netty-shaded:build UP-TO-DATE
> Task :grpc-okhttp:assemble UP-TO-DATE
> Task :grpc-okhttp:animalsnifferMain UP-TO-DATE
> Task :grpc-okhttp:compileTestJava UP-TO-DATE
> Task :grpc-okhttp:processTestResources NO-SOURCE
> Task :grpc-okhttp:testClasses UP-TO-DATE
> Task :grpc-okhttp:animalsnifferTest UP-TO-DATE
> Task :grpc-okhttp:checkstyleMain UP-TO-DATE
> Task :grpc-okhttp:checkstyleTest UP-TO-DATE
> Task :grpc-okhttp:test UP-TO-DATE
> Task :grpc-okhttp:check UP-TO-DATE
> Task :grpc-okhttp:build UP-TO-DATE
> Task :grpc-protobuf:assemble UP-TO-DATE
> Task :grpc-protobuf:animalsnifferMain UP-TO-DATE
> Task :grpc-protobuf:extractIncludeTestProto UP-TO-DATE
> Task :grpc-protobuf:extractTestProto UP-TO-DATE
> Task :grpc-protobuf:generateTestProto UP-TO-DATE
> Task :grpc-protobuf:compileTestJava UP-TO-DATE
> Task :grpc-protobuf:processTestResources NO-SOURCE
> Task :grpc-protobuf:testClasses UP-TO-DATE
> Task :grpc-protobuf:animalsnifferTest UP-TO-DATE
> Task :grpc-protobuf:checkstyleMain UP-TO-DATE
> Task :grpc-protobuf:checkstyleTest UP-TO-DATE
> Task :grpc-protobuf:test UP-TO-DATE
> Task :grpc-protobuf:check UP-TO-DATE
> Task :grpc-protobuf:build UP-TO-DATE
> Task :grpc-protobuf-lite:assemble UP-TO-DATE
> Task :grpc-protobuf-lite:animalsnifferMain UP-TO-DATE
> Task :grpc-protobuf-lite:extractIncludeTestProto UP-TO-DATE
> Task :grpc-protobuf-lite:extractTestProto UP-TO-DATE
> Task :grpc-protobuf-lite:generateTestProto UP-TO-DATE
> Task :grpc-protobuf-lite:compileTestJava UP-TO-DATE
> Task :grpc-protobuf-lite:processTestResources NO-SOURCE
> Task :grpc-protobuf-lite:testClasses UP-TO-DATE
> Task :grpc-protobuf-lite:animalsnifferTest UP-TO-DATE
> Task :grpc-protobuf-lite:checkstyleMain UP-TO-DATE
> Task :grpc-protobuf-lite:checkstyleTest UP-TO-DATE
> Task :grpc-protobuf-lite:test UP-TO-DATE
> Task :grpc-protobuf-lite:check UP-TO-DATE
> Task :grpc-protobuf-lite:build UP-TO-DATE
> Task :grpc-services:assemble UP-TO-DATE
> Task :grpc-services:animalsnifferMain UP-TO-DATE
> Task :grpc-services:extractIncludeTestProto UP-TO-DATE
> Task :grpc-services:extractTestProto UP-TO-DATE
> Task :grpc-services:generateTestProto UP-TO-DATE
> Task :grpc-services:compileTestJava UP-TO-DATE
> Task :grpc-services:processTestResources UP-TO-DATE
> Task :grpc-services:testClasses UP-TO-DATE
> Task :grpc-services:animalsnifferTest UP-TO-DATE
> Task :grpc-services:checkstyleMain UP-TO-DATE
> Task :grpc-services:checkstyleTest UP-TO-DATE
> Task :grpc-services:test UP-TO-DATE
> Task :grpc-services:check UP-TO-DATE
> Task :grpc-services:build UP-TO-DATE
> Task :grpc-stub:assemble UP-TO-DATE
> Task :grpc-stub:animalsnifferMain UP-TO-DATE
> Task :grpc-stub:compileTestJava UP-TO-DATE
> Task :grpc-stub:processTestResources NO-SOURCE
> Task :grpc-stub:testClasses UP-TO-DATE
> Task :grpc-stub:animalsnifferTest UP-TO-DATE
> Task :grpc-stub:checkstyleMain UP-TO-DATE
> Task :grpc-stub:checkstyleTest UP-TO-DATE
> Task :grpc-stub:test UP-TO-DATE
> Task :grpc-stub:check UP-TO-DATE
> Task :grpc-stub:build UP-TO-DATE
> Task :grpc-testing:assemble UP-TO-DATE
> Task :grpc-testing:checkstyleMain UP-TO-DATE
> Task :grpc-testing:compileTestJava UP-TO-DATE
> Task :grpc-testing:processTestResources NO-SOURCE
> Task :grpc-testing:testClasses UP-TO-DATE
> Task :grpc-testing:checkstyleTest UP-TO-DATE
> Task :grpc-testing:test UP-TO-DATE
> Task :grpc-testing:check UP-TO-DATE
> Task :grpc-testing:build UP-TO-DATE
> Task :grpc-testing-proto:assemble UP-TO-DATE
> Task :grpc-testing-proto:checkstyleMain NO-SOURCE
> Task :grpc-testing-proto:extractIncludeTestProto UP-TO-DATE
> Task :grpc-testing-proto:extractTestProto UP-TO-DATE
> Task :grpc-testing-proto:generateTestProto UP-TO-DATE
> Task :grpc-testing-proto:compileTestJava UP-TO-DATE
> Task :grpc-testing-proto:processTestResources NO-SOURCE
> Task :grpc-testing-proto:testClasses UP-TO-DATE
> Task :grpc-testing-proto:checkstyleTest UP-TO-DATE
> Task :grpc-testing-proto:test UP-TO-DATE
> Task :grpc-testing-proto:check UP-TO-DATE
> Task :grpc-testing-proto:build UP-TO-DATE
> Task :grpc-xds:assemble UP-TO-DATE
> Task :grpc-xds:animalsnifferMain UP-TO-DATE
> Task :grpc-xds:extractIncludeTestProto UP-TO-DATE
> Task :grpc-xds:extractTestProto UP-TO-DATE
> Task :grpc-xds:generateTestProto UP-TO-DATE
> Task :grpc-xds:compileTestJava UP-TO-DATE
> Task :grpc-xds:processTestResources NO-SOURCE
> Task :grpc-xds:testClasses UP-TO-DATE
> Task :grpc-xds:animalsnifferTest UP-TO-DATE
> Task :grpc-xds:checkstyleMain UP-TO-DATE
> Task :grpc-xds:checkstyleTest UP-TO-DATE
> Task :grpc-xds:test UP-TO-DATE
> Task :grpc-xds:check UP-TO-DATE
> Task :grpc-xds:build UP-TO-DATE

BUILD SUCCESSFUL in 4s
241 actionable tasks: 2 executed, 239 up-to-date

Following are the changes I did locally for a quick build:-

[root@p006vm32 grpc-java]# git diff
diff --git a/netty/shaded/src/testShadow/java/io/grpc/netty/shaded/ShadingTest.java b/netty/shaded/src/testShadow/java/io/grpc/netty/shaded/ShadingTest.java
index 8527ff4eb..e1a341a54 100644
--- a/netty/shaded/src/testShadow/java/io/grpc/netty/shaded/ShadingTest.java
+++ b/netty/shaded/src/testShadow/java/io/grpc/netty/shaded/ShadingTest.java
@@ -36,6 +36,7 @@ import io.grpc.testing.protobuf.SimpleServiceGrpc.SimpleServiceBlockingStub;
 import io.grpc.testing.protobuf.SimpleServiceGrpc.SimpleServiceImplBase;
 import java.util.concurrent.TimeUnit;
 import org.junit.After;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -86,6 +87,7 @@ public final class ShadingTest {
   }

   @Test
+  @Ignore
   public void tcnative() throws Exception {
     server = NettyServerBuilder.forPort(0)
         .useTransportSecurity(TestUtils.loadCert("server1.pem"), TestUtils.loadCert("server1.key"))
diff --git a/netty/src/test/java/io/grpc/netty/NettyClientTransportTest.java b/netty/src/test/java/io/grpc/netty/NettyClientTransportTest.java
index 07979ab11..1ba398bef 100644
--- a/netty/src/test/java/io/grpc/netty/NettyClientTransportTest.java
+++ b/netty/src/test/java/io/grpc/netty/NettyClientTransportTest.java
@@ -104,6 +104,7 @@ import javax.annotation.Nullable;
 import javax.net.ssl.SSLHandshakeException;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
@@ -295,6 +296,7 @@ public class NettyClientTransportTest {
   }

   @Test
+  @Ignore
   public void tlsNegotiationFailurePropagatesToStatus() throws Exception {
     File serverCert = TestUtils.loadCert("server1.pem");
     File serverKey = TestUtils.loadCert("server1.key");
@@ -677,6 +679,7 @@ public class NettyClientTransportTest {
    * executor passing in, and without resource leak after closing the negotiator.
    */
   @Test
+  @Ignore
   public void tlsNegotiationServerExecutorShouldSucceed() throws Exception {
     // initialize the client and server Executor pool
     TrackingObjectPoolForTest serverExecutorPool = new TrackingObjectPoolForTest();
diff --git a/testing/src/main/java/io/grpc/internal/testing/TestUtils.java b/testing/src/main/java/io/grpc/internal/testing/TestUtils.java
index 6b467eff5..c01d25002 100644
--- a/testing/src/main/java/io/grpc/internal/testing/TestUtils.java
+++ b/testing/src/main/java/io/grpc/internal/testing/TestUtils.java
@@ -169,6 +169,7 @@ public class TestUtils {
     Provider provider;
     try {
       provider = ConscryptLoader.newProvider();
+      Security.addProvider(provider);
     } catch (Throwable t) {
       Throwable root = Throwables.getRootCause(t);
       // Conscrypt uses a newer version of glibc than available on RHEL 6
@@ -177,9 +178,9 @@ public class TestUtils {
         conscryptInstallAttempted = true;
         return;
       }
-      throw new RuntimeException("Could not create Conscrypt provider", t);
+      //throw new RuntimeException("Could not create Conscrypt provider", t);
     }
-    Security.addProvider(provider);
+    //Security.addProvider(provider);
     conscryptInstallAttempted = true;
   }

Any thoughts on this?

sarveshtamba commented 4 years ago

@ejona86 one more update - As mentioned in https://github.com/grpc/grpc-java/blob/master/COMPILING.md, I have managed to install the artifacts to my Maven local repository for use in local project and also build Protobuf in order to build C++ code generation plugin for protoc in grpc-java. I also had to make changes to compiler/check-artifact.sh as per your suggestion to refer #6441 .

With this, I was able to run the examples as mentioned in https://github.com/grpc/grpc-java/tree/v1.26.0/examples - HelloWorld, RouteGuide and HedgingHelloWorld.

Let me know if I can raise a PR for changes to support PPC64LE(after putting in neccessary platform checks for PPC64LE) or any further testing is required.

ejona86 commented 4 years ago

@sarveshtamba, great! Go ahead and create a PR for it (and CC me). If it works for you, that is probably enough testing since "something is better than nothing." If you want pre-built protoc binaries to be available on Maven Central, then that would mean updating linux_artifacts.sh.

afsanjar commented 3 years ago

@sarveshtamba Thanks for the patch. However, I am still experiencing the same build failures on Power. Please advise.

.UnsatisfiedLinkError: no conscrypt_openjdk_jni in java.library.path: [/usr/java/packages/lib, /usr/lib/powerpc64le-linux-gnu/jni, /lib/powerpc64le-linux-gnu, /usr/lib/powerpc64le-linux-gnu, /usr/lib/jni, /lib, /usr/lib]