openwhisk-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matt Rutkowski" <mrutk...@us.ibm.com>
Subject Re: build issue - Cannot recognize package: gopkg.in/yaml.v2
Date Tue, 15 Jan 2019 18:51:09 GMT
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" <jspringer@us.ibm.com>
To:     dev@openwhisk.apache.org
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: jspringer@us.ibm.com - 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 <mattryan@apache.org>
To: dev@openwhisk.apache.org
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 <groved@us.ibm.com> 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 <mattryan@apache.org>
> To: dev@openwhisk.apache.org
> 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
>
>
>
>







Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message