New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 789222 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

CQ Exonerator Bot sends CLs to CQ that were explicitly not meant to be merged by the author

Project Member Reported by jwer...@chromium.org, Nov 28 2017

Issue description

See https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/676269

Shelley removed the Commit-Queue+1 from her CL while it was already in the CQ because we had come up with additional things that should be reworked at the last moment. According to my understanding, this should have been enough to prevent the CQ from merging the change even if the run had been successful.

But the run failed for unrelated reasons anyway. Then some magic new bot swooped in and just re-marked the CL as Commit-Queue+1 on its own, apparently thinking that it had somehow been disabled by some automatic CQ health mechanism. But it wasn't. A bot should never send a CL to the CQ on its own that was explicitly marked not ready by a user.
 

Comment 1 by pho...@chromium.org, Nov 28 2017

Owner: pho...@chromium.org
Status: Assigned (was: Untriaged)

Comment 2 by pho...@chromium.org, Nov 28 2017

I see, I set it up to check that the CL wasn't marked CQ-1 or Verified-1. I'll add a check to make sure that the CQ+1 tag was actually removed by chromeos-bot.
Labels: -Pri-1 Pri-2
Note that when the bot removes CQ+1, it does so by forging identity (because it has to act under the identity of the original +1er in order to remove their vote). So #2 may or may not be easy to accomplish.


Regarding original post, yes, this is a new bot we are rolling out. For a number of reasons, developers should not be modifying their change while it is in the CQ, the CQ +1 button should be considered a "I want this to be submitted" vote. This new bot is just one more reason. If #2 turns out to be difficult to implement, I don't think that should block us from rolling out this otherwise highly useful bot. Therefore, reducing to P2.
> the CQ +1 button should be considered a "I want this to be submitted" vote

Sure, but there may always be reasons why you'd want to change your opinion later on. People may forget things or make mistakes. The only alternative is to submit a revert right afterwards which is way more hassle for everyone, so I think it's important to preserve the existing ways to stop a CL at the last minute (both by owner removing Commit-Ready+1 and by someone else setting Code-Review-2).
Setting CR-2 or V-1 are suitable ways to change your mind later on, and the exonerator bot will not touch those bits.

Comment 6 by pho...@chromium.org, Nov 29 2017

Status: Started (was: Assigned)
Re: #3 

It is possible to tell from the API response that the identity is forged: each message has an "author" and "real_author" field. We can check for whether the most recent CQ+1 bit removal has msg['real_author']['email'] = 'chromeos-commit-bot@..."

While Aviv's point stands that setting CQ-1 or V-1 would work, I think this is a reasonable request - I'd like the bot to have as few landmines as possible.

Comment 7 by pho...@chromium.org, Nov 29 2017

Oops, I forgot to mention that CR-(1|2) also works
Status: Fixed (was: Started)
Status: Assigned (was: Fixed)
Looks like this still happens? odd, because I added a unit test for the CQ-bit-removed-by-human case...
Cc: pho...@chromium.org
 Issue 794672  has been merged into this issue.
Status: Fixed (was: Assigned)
Labels: CL-Exonerator

Sign in to add a comment