openshift / origin

Conformance test suite for OpenShift
http://www.openshift.org
Apache License 2.0
8.49k stars 4.7k forks source link

Extended.[builds][Slow] openshift pipeline build Pipeline with env vars should build and complete successfully #15685

Closed bparees closed 7 years ago

bparees commented 7 years ago
/go/src/github.com/openshift/origin/_output/local/go/src/github.com/openshift/origin/test/extended/builds/pipeline.go:407
Expected error:
    <*errors.errorString | 0xc4209eb410>: {
        s: "build sample-pipeline-withenvs-1 does not contain a Jenkins BlueOcean URL annotation",
    }
    build sample-pipeline-withenvs-1 does not contain a Jenkins BlueOcean URL annotation
not to have occurred
/go/src/github.com/openshift/origin/_output/local/go/src/github.com/openshift/origin/test/extended/builds/pipeline.go:349

https://ci.openshift.redhat.com/jenkins/job/test_branch_origin_extended_builds/164/testReport/junit/(root)/Extended/_builds__Slow__openshift_pipeline_build_Pipeline_with_env_vars_should_build_and_complete_successfully/

Not marking as a flake because i think it's failing every time right now.

gabemontero commented 7 years ago

trying it now locally, but I bet there is some timing issue with the throttling that was added ... especially with this fast running build/test

gabemontero commented 7 years ago

Multiple items at play ... the blueocean plugin bump resulted in a new problem: the blueocean api we were leveraging has changed/moved.

java.lang.ClassNotFoundException: cached miss for io.jenkins.blueocean.BlueOceanWebURLBuilder
    at hudson.PluginManager$UberClassLoader.findClass(PluginManager.java:1849)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at io.fabric8.jenkins.openshiftsync.BuildSyncRunListener.upsertBuild(BuildSyncRunListener.java:268)
    at io.fabric8.jenkins.openshiftsync.BuildSyncRunListener.pollRun(BuildSyncRunListener.java:191)
    at io.fabric8.jenkins.openshiftsync.BuildSyncRunListener.onCompleted(BuildSyncRunListener.java:149)
    at hudson.model.listeners.RunListener.fireCompleted(RunListener.java:211)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.finish(WorkflowRun.java:618)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun.access$1400(WorkflowRun.java:125)
    at org.jenkinsci.plugins.workflow.job.WorkflowRun$GraphL.onNewHead(WorkflowRun.java:901)
    at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.notifyListeners(CpsFlowExecution.java:1203)
    at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$3.run(CpsThreadGroup.java:407)
    at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$1.run(CpsVmExecutorService.java:35)
    at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112)
    at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
    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)

It was not obvious since we had to use reflection to get at it. Now that jenkins-1-* has been deprecated, we can punt on that.

And as has been discussed before, our jenkins repo test currently does not employ the plugin extended tests. The impacts are on the rare side, but we hit one here.

Still think the throttling might come into play, and a tweak to the exteneded test might be needed.

gabemontero commented 7 years ago

... though perhaps we wait on the throttling causing such an issue actually occurring (we do push complete states immediately) before implementing that change. We'll see how the local tests go after fixing the blue ocean class/api issue.

gabemontero commented 7 years ago

Yeah, the test is passing again for me locally with just the plugin update. No update to the test case needed to delay between build completion and annotation check. Going to forgo such a change (a completed build should be flushed from the sync plugin to openshift immediately). We still check build status every second in jenkins (though we had experimented with making that interval longer, we backed off of that).