test-infra: crier failed to report job after pod pending timeout, no commit found

/area prow/crier /area prow /assign @krzyzacy

There are a bunch of these messages on crier startup. Is this an expected state of affairs and if so can we make the message less noisy?

jsonPayload: {
  component:  "crier"   
  error:  "error setting status: status code 422 not one of [201], body: {"message":"No commit found for SHA: 987e7a399c7b270cf22ed0f3c8b948df8b4f5400","documentation_url":"https://developer.github.com/v3/repos/statuses/#create-a-status"}"   
  file:  "prow/crier/controller.go:274"   
  func:  "k8s.io/test-infra/prow/crier.(*Controller).processNextItem"   
  jobName:  "7442d7ab-bdc1-11e9-a69c-de35c67e51d2"   
  jobStatus: {
   build_id:  "1161245346127417346"    
   completionTime:  "2019-08-13T12:57:20Z"    
   description:  "Pod pending timeout."    
   pod_name:  "7442d7ab-bdc1-11e9-a69c-de35c67e51d2"    
   startTime:  "2019-08-13T11:56:58Z"    
   state:  "error"    
   url:  "https://prow.k8s.io/view/gcs/kubernetes-jenkins/logs/ci-kubernetes-bazel-test/1161245346127417346"    
  }
  level:  "error"   
  msg:  "failed to report job"   
  prowjob:  "default/7442d7ab-bdc1-11e9-a69c-de35c67e51d2"   
 }

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 31 (28 by maintainers)

Most upvoted comments

Also see the relevant slack conversation.

To summarise my take:

We have advertised the behaviour of triggering on postsubmits as a feature, as well as the specific feature of the branches option matching on tags as well. We have users who depend on this both in the kubernetes project and downstream, for purposes such as publishing tags and ensuring correctly tagged builds are generated.

The current behaviour aroung tag postsubmits is poor - it is surprising that your postsubmits are triggered on tags, and you cannot distringuish between branches and tags in configuration except by naming convention. While we cannot remove this functionality without replacement, I am in favour of moving to a configuration that allows specifically configuring tags separately - it would allow for more configurable and less surprising behaviour.

How about we add tags and skip_tags to just postsubmits? (you cannot PR a tag change, so presubmits are irrelevant). Once that is in then a flag to turn off tags on branches

Basically this is the push event for a tag, not pushing commits to the branch.

https://developer.github.com/v3/activity/events/types/#webhook-event-name-36

https://github.com/kubernetes/test-infra/blob/02f11f95f77dd130965ada69ff022984efe8e851/prow/github/types.go#L733-L737

https://github.com/kubernetes/test-infra/blob/b25c3c2748570fc04d52808ec2710ac32168eae3/prow/plugins/trigger/push.go#L48-L56

If it is a tag we could either:

  1. not trigger a postsubmit (do we have anyone relying on this behavior?)
  2. update handlePE() to get the tag data and trigger this instead: https://developer.github.com/v3/git/tags/#get-a-tag

https://github.com/kubernetes/test-infra/blob/b25c3c2748570fc04d52808ec2710ac32168eae3/prow/plugins/trigger/push.go#L64

I’d be inclined to do (1) and then if we want to do tag based triggering we can support more explicitly than via implicitly treating refs/heads/foo and refs/tags/foo as both a foo branch in https://github.com/kubernetes/test-infra/blob/cb1899b6e99705c68705749a9311a7310e73c671/prow/config/jobs.go#L203-L214

Yep…

$ git show 7fb7b93714ea8779c197a5fc0aed814bab5c236e
tag v1.13.13-beta.0
Tagger: Anago GCB <nobody@k8s.io>
Date:   Tue Oct 15 11:44:23 2019 +0000

Kubernetes beta release v1.13.13-beta.0

commit 551f03f1b34655a7fef8629a8f445c6e78576b54 (tag: v1.13.13-beta.0)
Author: Anago GCB <nobody@k8s.io>
Date:   Tue Oct 15 11:44:23 2019 +0000

    Kubernetes version v1.13.13-beta.0 openapi-spec file updates

diff --git a/api/openapi-spec/swagger.json b/api/openapi-spec/swagger.json
index 5e65ebcdbb..e746d5517e 100644
--- a/api/openapi-spec/swagger.json
+++ b/api/openapi-spec/swagger.json
@@ -2,7 +2,7 @@
   "swagger": "2.0",
   "info": {
    "title": "Kubernetes",
-   "version": "v1.13.12"
+   "version": "v1.13.13"
   },
   "paths": {
    "/api/": {