New issue
Advanced search Search tips

Issue 689146 link

Starred by 3 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature



Sign in to add a comment

Gerrit CQ should test all subchains starting with base change in a chain of changes

Project Member Reported by tandrii@chromium.org, Feb 6 2017

Issue description

Suppose, you have 3 chained changes, each using submit strategy=Rebase Always:
 <common base on master> -> A > B -> C

if all changes are approved and CQ is triggered on C, 
then what should happen?

Currently:
  CQ will try  (A+B+C) on top of current master HEAD,
  if try jobs pass, land A, B, C.
  => there is no guarantee that change A or A+B didn't result in compile failures.

What should happen? Either:

1. CQ rejects a full run on C immediately if B hasn't landed === Rietveld behavior.

2. CQ triggers all tryjobs, but if all tryjobs pass, fail with "must submit B first" if B hasn't yet landed.

3. CQ magically triggers CQ runs on B and waits for it to complete before issuing "submit" on C. CQ run on B will do the same with A, the end result being roughly this timeline:

  user triggers CQ on C
  CQ C: triggers CQ on B
  CQ C: triggers tryjobs on A+B+C
  CQ B: triggers CQ on A
  CQ B: triggers tryjobs on A+B
  CQ A: triggers tryjobs on A
  
  CQ B: notices that all tryjobs A+B pass, but must wait for CQ A to finish running
  CQ A: notices that all tryjobs A pass, submits A
  CQ B: notices CQ A is complete, submits B
  CQ C: notices that A+B+C pass and that CQ B finished, submits C.
 
Cc: aga...@chromium.org
Labels: Proj-Gerrit-Migration
Owner: tandrii@chromium.org
Status: Assigned (was: Untriaged)
Are you filing to keep track of this? Would you like feedback on it? Let us know how we can help, here.
Cc: tandrii@chromium.org
Labels: Milestone-Afterglow
Owner: ----
Status: Available (was: Assigned)
FTR, behavior #1 above is currently being deployed.

I want to keep track of this and feedback is welcomed.

However, I didn't mean to mark this a part of Gerrit Migration. This is very non-trivial, potentially shouldn't be done at all, hence Milestone-Afterglow or not even that.
Labels: Pri-2 Type-Feature

Comment 4 by efoo@chromium.org, Aug 31 2017

Components: Infra>Platform>CQ

Comment 5 by efoo@chromium.org, Aug 31 2017

Components: -Infra>Platform>CQdaemon
Labels: -Milestone-Afterglow
Removing Milestone-Afterglow, as it has ceased to have meaning. More refined milestones may be added back in the near future.
Components: -Infra>Codereview>Gerrit
Labels: -Restrict-View-Google -Proj-Gerrit-Migration
The CQ could do this by automatically setting CQ+1 on changes lower in the chain, so putting on CQ's plate.
Project Member

Comment 8 by sheriffbot@chromium.org, Jan 7

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Hotlist-Recharge-Cold
Status: Available (was: Untriaged)

Sign in to add a comment