openshift / jenkins-plugin

Apache License 2.0
81 stars 50 forks source link

bump okhttp #149

Closed gabemontero closed 7 years ago

gabemontero commented 7 years ago

Fixes https://github.com/openshift/jenkins-plugin/issues/147

trying this out on its own first, but if timing works out, will also update the openshift-restclient-java version with this pull

gabemontero commented 7 years ago

[test]

bparees commented 7 years ago

lgtm

gabemontero commented 7 years ago

Need the restclient bump https://github.com/openshift/openshift-restclient-java/pull/284 before merging this:

java.lang.NoSuchMethodError: okhttp3.internal.Internal.callEnqueue(Lokhttp3/Call;Lokhttp3/Callback;Z)V
    at okhttp3.ws.WebSocketCall.enqueue(WebSocketCall.java:108)
    at com.openshift.internal.restclient.api.capabilities.PodExec.start(PodExec.java:107)
    at com.openshift.jenkins.plugins.pipeline.model.IOpenShiftExec$1.visit(IOpenShiftExec.java:151)
    at com.openshift.jenkins.plugins.pipeline.model.IOpenShiftExec$1.visit(IOpenShiftExec.java:148)
    at com.openshift.internal.restclient.model.KubernetesResource.accept(KubernetesResource.java:91)
    at com.openshift.jenkins.plugins.pipeline.model.IOpenShiftExec.coreLogic(IOpenShiftExec.java:148)
    at com.openshift.jenkins.plugins.pipeline.model.IOpenShiftPlugin.doItCore(IOpenShiftPlugin.java:309)
    at com.openshift.jenkins.plugins.pipeline.model.IOpenShiftPlugin.doIt(IOpenShiftPlugin.java:327)
    at com.openshift.jenkins.plugins.pipeline.OpenShiftBaseStep.perform(OpenShiftBaseStep.java:81)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:735)
    at hudson.model.Build$BuildExecution.build(Build.java:206)
    at hudson.model.Build$BuildExecution.doRun(Build.java:163)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:490)
    at hudson.model.Run.execute(Run.java:1735)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:405)
ERROR: "OpenShift Exec" failed
Finished: FAILURE
gabemontero commented 7 years ago

Hmm ... the oc exec equivalent tests are still getting

java.lang.NoSuchMethodError: okhttp3.internal.Internal.setCallWebSocket(Lokhttp3/Call;)V
    at okhttp3.ws.WebSocketCall.enqueue(WebSocketCall.java:108)
    at com.openshift.internal.restclient.api.capabilities.PodExec.start(PodExec.java:107)
    at com.openshift.jenkins.plugins.pipeline.model.IOpenShiftExec$1.visit(IOpenShiftExec.java:170)
    at com.openshift.jenkins.plugins.pipeline.model.IOpenShiftExec$1.visit(IOpenShiftExec.java:167)
    at com.openshift.internal.restclient.model.KubernetesResource.accept(KubernetesResource.java:91)
    at com.openshift.jenkins.plugins.pipeline.model.IOpenShiftExec.coreLogic(IOpenShiftExec.java:166)
    at com.openshift.jenkins.plugins.pipeline.model.IOpenShiftPlugin.doItCore(IOpenShiftPlugin.java:356)
    at com.openshift.jenkins.plugins.pipeline.dsl.OpenShiftExecExecution.run(OpenShiftExecExecution.java:47)
    at com.openshift.jenkins.plugins.pipeline.dsl.OpenShiftExecExecution.run(OpenShiftExecExecution.java:18)
    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
    at hudson.security.ACL.impersonate(ACL.java:260)
    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Even after bumping the okhttp version with the rest client.

I'll need to examine that code path more closely and probably tinker with things manually to get it sorted out.

gabemontero commented 7 years ago

believe I sorted it out ... somehow, just bringing in okhttp 3.8.x only brought in okhttp-ws 3.3.1 ... hence the no such method error when calling WebSocketCall from okhttp-ws

explicitly cite okhttp-ws and bump to 3.4.2 like openshift-restclient-java

did not run locally ... but pretty confident this is it ... let's see how the ci job does this time

openshift-bot commented 7 years ago

Evaluated for jenkins plugin test up to 09d4759ae322d5826fa785d018262cece32438b4

openshift-bot commented 7 years ago

continuous-integration/openshift-jenkins-plugin/test FAILURE (https://ci.openshift.redhat.com/jenkins/job/test_pull_request_jenkins_plugin/10/) (Base Commit: eb35b2a6b15c7df036fb3580e867f03da2e51b3e) (PR Branch Commit: 09d4759ae322d5826fa785d018262cece32438b4)

gabemontero commented 7 years ago

maven frustration grows - still same problem as https://github.com/openshift/jenkins-plugin/pull/149#issuecomment-329272916

also had a couple of build start too late, were still running / not yet complete when test timed out

gabemontero commented 7 years ago

ok, sorted out, not pretty though

per https://github.com/csync/csync-android/issues/22 and https://medium.com/square-corner-blog/web-sockets-now-shipping-in-okhttp-3-5-463a9eec82d1 okhttp-ws is deprecated

the internal classes that okhttp-ws depended on are no longer in 3.8.1 of okhttp

the level of change needed in restclient seems high enough that given pr 148 still solves the original problem motivating this, and given where this plugin is re: future dev, possible deprecation, etc. punting on this