The stack trace was illuminating... It appears as if early on it is not able to build the CA cert. path
>> " sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) >> ... 95 more >> Caused by: sun.security.provider.certpath.SunCertPathBuilderException: >> unable to find valid certification path to requested target It seems that this particular package has caused lots of issues over the last 3-6 months (see linked issues below)... The SSL cert for the domain (according to browser) was issued by "Let's Encrypt" (Authority X3) on Nov. 16th, 2018 and expires on Feb. 19, 2019. It establishes a TLS 1.2 connection using AES-128 with 128 bit keys ---- Interestingly, using "go get" (both secure and insecure) works on Mac, but inside gradle appears to fail... gradle might be masking the paths to the certs.(one article suggests installing the cert. manually in your keystore) ... Here are some articles that have issues with this doman and its CA that I found that might help lead to a solution: https://stackoverflow.com/questions/21076179/pkix-path-building-failed-and-unable-to-find-valid-certification-path-to-requ - NOTE: similar exception " sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)", but they were using a diff. lib. and they had issues with using the JRE directly... https://github.com/niemeyer/gopkg/issues/63 https://github.com/go-yaml/yaml/issues/401 Also, we should note that it might be an issue with the Mac, as I assume our Travis builds still work on Linux? Is there a gradle person here that knowledgeable enough to tell us how the env. (paths etc.) are conveyed to its underlying (referenced) build components (i.e., go/java/git) ? That is to verify the cert. path specifically? Kind regards, Matt From: "Jonathan P Springer" <[email protected]> To: [email protected] Date: 01/15/2019 10:14 AM Subject: Re: build issue - Cannot recognize package: gopkg.in/yaml.v2 Ah ha! Looks like a TLS error, perhaps related to who the root signing CA is for gopkg.in. I'm not that great at figuring out how Java manages it's TLS certificates, but that would be my next stop. So, which JRE are you using? And what OS distro? Be sure you have an up to date CA certificates installation if you're building in a container. I'll do some extra poking around gogradle, because it may be doing its own get logic and your JRE may not use your system CAs. :/ Regards, -J ----------------------------------------------------------------------------------------------- Jonathan P Springer IBM Software Client Architect, IBM US, Financial Services Market E-mail: [email protected] - Mobile: +1-917-676-3651 ----------------------------------------------------------------------------------------------- Matt Ryan ---01/14/2019 01:09:30 PM---Hi David, Thank you for the suggestion. I tried what you suggested but got the same From: Matt Ryan <[email protected]> To: [email protected] Date: 01/14/2019 01:09 PM Subject: Re: build issue - Cannot recognize package: gopkg.in/yaml.v2 Hi David, Thank you for the suggestion. I tried what you suggested but got the same error. Running with the "--info" switch I see there is an exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target At the end of the stack trace it asks this question: Cannot recoginze gopkg.in/yaml.v2, are you offline now? I am online though, and can ping the server: > ping gopkg.in PING gopkg.in (35.196.143.184): 56 data bytes 64 bytes from 35.196.143.184: icmp_seq=0 ttl=51 time=80.711 ms 64 bytes from 35.196.143.184: icmp_seq=1 ttl=51 time=80.981 ms Full stack trace included below. Any ideas? Thanks in advance. Exception in accessing http://gopkg.in/yaml.v2 javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1509) at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216) at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979) at sun.security.ssl.Handshaker.process_record(Handshaker.java:914) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387) at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1513) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441) at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338) at com.github.blindpirate.gogradle.util.HttpUtils.fetchAsInputStream(HttpUtils.java:138) at com.github.blindpirate.gogradle.util.HttpUtils.fetchAsInputStream(HttpUtils.java:142) at com.github.blindpirate.gogradle.util.HttpUtils.fetch(HttpUtils.java:100) at com.github.blindpirate.gogradle.util.HttpUtils.get(HttpUtils.java:54) at com.github.blindpirate.gogradle.core.pack.MetadataPackagePathResolver.fetchHtml(MetadataPackagePathResolver.java:110) at com.github.blindpirate.gogradle.core.pack.MetadataPackagePathResolver.fetchViaWeb(MetadataPackagePathResolver.java:73) at com.github.blindpirate.gogradle.core.pack.MetadataPackagePathResolver.produce(MetadataPackagePathResolver.java:67) at com.github.blindpirate.gogradle.core.pack.MetadataPackagePathResolver$$EnhancerByGuice$$a0ad225f.CGLIB$produce$1(<generated>) at com.github.blindpirate.gogradle.core.pack.MetadataPackagePathResolver$$EnhancerByGuice$$a0ad225f$$FastClassByGuice$$8ae5c4a.invoke(<generated>) at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at com.github.blindpirate.gogradle.util.logging.DebugLogMethodInterceptor.invoke(DebugLogMethodInterceptor.java:38) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at com.github.blindpirate.gogradle.core.pack.MetadataPackagePathResolver$$EnhancerByGuice$$a0ad225f.produce(<generated>) at com.github.blindpirate.gogradle.core.pack.MetadataPackagePathResolver.produce(MetadataPackagePathResolver.java:44) at com.github.blindpirate.gogradle.core.pack.MetadataPackagePathResolver$$EnhancerByGuice$$a0ad225f.produce(<generated>) at com.github.blindpirate.gogradle.util.FactoryUtil.lambda$produce$0(FactoryUtil.java:29) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958) at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498) at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152) at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464) at com.github.blindpirate.gogradle.util.FactoryUtil.produce(FactoryUtil.java:32) at com.github.blindpirate.gogradle.core.pack.DefaultPackagePathResolver.produce(DefaultPackagePathResolver.java:61) at com.github.blindpirate.gogradle.core.pack.DefaultPackagePathResolver$$EnhancerByGuice$$5bab10ee.CGLIB$produce$1(<generated>) at com.github.blindpirate.gogradle.core.pack.DefaultPackagePathResolver$$EnhancerByGuice$$5bab10ee$$FastClassByGuice$$4a85f1f8.invoke(<generated>) at com.google.inject.internal.cglib.proxy.$MethodProxy.invokeSuper(MethodProxy.java:228) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76) at com.github.blindpirate.gogradle.util.logging.DebugLogMethodInterceptor.invoke(DebugLogMethodInterceptor.java:38) at com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77) at com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55) at com.github.blindpirate.gogradle.core.pack.DefaultPackagePathResolver$$EnhancerByGuice$$5bab10ee.produce(<generated>) at com.github.blindpirate.gogradle.core.dependency.parse.DefaultMapNotationParser.determinePackage(DefaultMapNotationParser.java:103) at com.github.blindpirate.gogradle.core.dependency.parse.DefaultMapNotationParser.parse(DefaultMapNotationParser.java:69) at com.github.blindpirate.gogradle.core.dependency.parse.DefaultNotationParser.parse(DefaultNotationParser.java:43) at com.github.blindpirate.gogradle.core.GolangConfiguration.create(GolangConfiguration.java:67) at com.github.blindpirate.gogradle.core.GolangConfiguration.lambda$resolveFirstLevelDependencies$0(GolangConfiguration.java:73) at java.util.ArrayList.forEach(ArrayList.java:1249) at com.github.blindpirate.gogradle.core.GolangConfiguration.resolveFirstLevelDependencies(GolangConfiguration.java:73) at com.github.blindpirate.gogradle.task.ResolveDependencies.getDependencies(ResolveDependencies.java:91) at com.github.blindpirate.gogradle.task.ResolveBuildDependencies_Decorated.getDependencies(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) at org.gradle.api.internal.project.taskfactory.TaskPropertyInfo$4.create(TaskPropertyInfo.java:99) at org.gradle.util.SingleMessageLogger.whileDisabled(SingleMessageLogger.java:217) at org.gradle.api.internal.project.taskfactory.TaskPropertyInfo.getValue(TaskPropertyInfo.java:97) at org.gradle.api.internal.project.taskfactory.TaskClassValidator.validate(TaskClassValidator.java:78) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:41) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:197) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99) at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625) at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:745) Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) at sun.security.validator.Validator.validate(Validator.java:260) at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1491) ... 95 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382) ... 101 more -MR On Fri, Jan 11, 2019 at 4:16 PM David P Grove <[email protected]> wrote: > I'm not an expert on the cli (or go project structure in general). But I > did see the same error as you with `./gradlew compile -PnativeCompile`. I > then did `./gradlew compile`, which succeeded and then `./gradlew compile > -PnativeCompile`. also worked. > > I don't know if this is a stable behavior, but maybe try the longer build > which does the exhaustive mutli-platform compile first. Somehow that seems > to resolve the dependency problem (at least for me, at least for now). > > Maybe this is a quirk introduced by the merging in of wskdeploy. > > --dave > > > [image: Inactive hide details for Matt Ryan ---01/11/2019 04:45:31 > PM---Hi, I cloned the latest version of 'incubator-openwhisk-cli' an]Matt > Ryan ---01/11/2019 04:45:31 PM---Hi, I cloned the latest version of > 'incubator-openwhisk-cli' and tried to > > From: Matt Ryan <[email protected]> > To: [email protected] > Date: 01/11/2019 04:45 PM > Subject: build issue - Cannot recognize package: gopkg.in/yaml.v2 > ------------------------------ > > > > Hi, > > I cloned the latest version of 'incubator-openwhisk-cli' and tried to > build, following the instructions in the README.md. When I run './gradlew > compile -PnativeCompile' I get an error: > > Cannot recognize package: gopkg.in/yaml.v2 > > I tried running 'go get gopkg.in/yaml.v2' which seemed to succeed but I'm > still getting the same error. > > Any suggestions? > > > -MR > > > >
