overrule veto votings

273 views
Skip to first unread message

Edwin Kempin

unread,
Oct 18, 2010, 9:43:46 AM10/18/10
to Repo and Gerrit Discussion
Hi,

by voting with the lowest value in one voting category one can block the submit
(e.g. -1 in Verified category or -2 in Code Review category). As some of our
users recently found out, project owners might simply delete such negative
votings by removing the reviewer who did the veto voting from the reviewers
list and submit anyway. I wonder if this is intended or if it just works by
chance.

For our scenario this is actually a useful functionality. We use the Hudson
Gerrit Plugin to automatically vote in the Verified category with -1 if the
build or test fail. However some teams have some unstable tests that break the
build once in a while. In this case the project owners might want to overrule
the voting of the Hudson Gerrit Plugin and submit anyway. They can do this by
removing the user of the Hudson Gerrit Plugin from the reviewers list.

Just want to confirm whether this intended to be used like this.
Since project owners anyway can revoke all the access rights to give veto
votings this should be ok, shouldn't it?

Best regards,
Edwin

Shawn Pearce

unread,
Oct 18, 2010, 2:00:16 PM10/18/10
to Edwin Kempin, Repo and Gerrit Discussion
On Mon, Oct 18, 2010 at 06:43, Edwin Kempin <edwin....@gmail.com> wrote:
> by voting with the lowest value in one voting category one can block the submit
> (e.g. -1 in Verified category or -2 in Code Review category). As some of our
> users recently found out, project owners might simply delete such negative
> votings by removing the reviewer who did the veto voting from the reviewers
> list and submit anyway. I wonder if this is intended or if it just works by
> chance.

Both. :-)

I argued against being able to delete a blocking negative score, but
got overridden by folks pointing out you can just amend the commit to
get a new SHA-1, delete Change-Id to get a new Change-Id, upload that
as a new change, and get a different reviewer who is oblivious to the
old review to approve the change and put it in anyway.

Given that, we went with allowing the deletion of the reviewer.
Deleting a reviewer also deletes their scores, because "being a
reviewer" and "having a score" are in fact the same database record.
Deleting one implies deleting the other. So its by chance that
deleting a reviewer deletes the score... but its also intended because
this is one way to override the score.

It would be better if we could still have a record that a reviewer had
voted, but make them somehow "inactive" when they are removed, but the
database doesn't have a way to store that right now.

> For our scenario this is actually a useful functionality. We use the Hudson
> Gerrit Plugin to automatically vote in the Verified category with -1 if the
> build or test fail. However some teams have some unstable tests that break the
> build once in a while. In this case the project owners might want to overrule
> the voting of the Hudson Gerrit Plugin and submit anyway. They can do this by
> removing the user of the Hudson Gerrit Plugin from the reviewers list.

Yup.

> Just want to confirm whether this intended to be used like this.
> Since project owners anyway can revoke all the access rights to give veto
> votings this should be ok, shouldn't it?

Yup. That was another reason why allowing deleting of a reviewer to
undo their blocking vote was OK. The project owner could just adjust
access rights to remove blocking permission from the reviewer.

Edwin Kempin

unread,
Oct 19, 2010, 8:58:39 AM10/19/10
to Shawn Pearce, Repo and Gerrit Discussion
Thanks for the details. As said for us it's good that a blocking vote
can be deleted,
however I also believe that marking this vote as "inactive" would be
much better
than simply deleting it. It would also be nice if a comment could be
provided to log
a reason why a certain vote was deactivated.

2010/10/18 Shawn Pearce <s...@google.com>:

Fredrik Luthander

unread,
Oct 19, 2010, 5:59:01 PM10/19/10
to Repo and Gerrit Discussion


On Oct 19, 2:58 pm, Edwin Kempin <edwin.kem...@gmail.com> wrote:
> Thanks for the details. As said for us it's good that a blocking vote
> can be deleted,
> however I also believe that marking this vote as "inactive" would be
> much better
> than simply deleting it. It would also be nice if a comment could be
> provided to log
> a reason why a certain vote was deactivated.
>

IIRC, the discussion was made from a perspective of "the user is on
vacation/sick leave or have left the company/project permanently", and
hence meant for a case where the user was unavailable to change their
review. It was never really meant to be a part of the process such as
you describe here.
Are you sure you want to base your process on the remove reviewer-
functionality? Gerrit is a tool that firstly eases social interaction,
and secondly solves technical problems. If a user blocks a change,
that's a social action, she communicates that she doesn't like
whatever the change contains.
Maybe you have an entirely different situation than what I can
imagine, but to me Gerrit is just a technical way to ease
communication on a social task(code review between peers). So, if
there's a problem with what it contains, the solution to that problem
should be social (argumenting) rather than technical (Oh, I'm removing
your review anyway) in my opinion. If you habitually remove reviews,
why even bother with them to begin with? If they shouldn't be
blocking, why don't you then allow only the non-blocking -1 instead of
the full range with -2 as well?

These words are just my own opinion, consider them as some food for
thought to your problem. I'm probably just unable to see where you
come from, what your actual situation is.

Greetings,
Fredrik

Edwin Kempin

unread,
Oct 20, 2010, 9:02:29 AM10/20/10
to Fredrik Luthander, Repo and Gerrit Discussion
Hi Fredrik,

I don't disagree with you. I think I already explained our use case.
It is not about overruling a blocking vote of a natural person (with
which you should of course discuss and argument until some agreement
is reached), but about overruling a system user. In our case it's a
Hudson build job which does the voting in the Verified category. For a
failing build the build job votes with -1. It's good that this vote is
blocking since normally you don't want to submit anything which
doesn't build. However there are some exceptional cases in which the
build fails not due to the change but due to unstable build
environment or tests. In such a case a project owner might remove the
blocking vote of the build job after analyzing the build failure and
verifying that it was not cause by the change. Of course also here the
better approach would be to repeat the build until it is successful
and a positive vote is given by the build job. However in our current
stup this is not possible since the build job is currently only able
to build the latest pushed change of the project. So at the moment we
can't easily repeat the build for an older change.

Nevertheless if it's possible to overrule a blocking vote by removing
the reviewer I think it should be a more explicit operation than it is
now. This operation should be properly loged so that one can see: Who
was overruling whom? What was the vote that was overruled? Why was
this done?

Best regards,
Edwin


2010/10/19 Fredrik Luthander <fredrik....@sonyericsson.com>:

> --
> To unsubscribe, email repo-discuss...@googlegroups.com
> More info at http://groups.google.com/group/repo-discuss?hl=en
>

Ragesh For U :-)

unread,
Oct 20, 2010, 10:08:26 AM10/20/10
to Edwin Kempin, Fredrik Luthander, Repo and Gerrit Discussion
Not sure how much helpful, but we avoid such situation by below scenario in Hudson.
Our Hudson gives +1 Verify on successful build but gives -1 Code review on failure instead of -1 verify. Now there are Quality board members with verify rights who can pitch in on scenarios like you mentioned to save the gerrit change.

Best regards
-Ragesh
Hudson SonyEricsson Team

Matthias Sohn

unread,
Oct 20, 2010, 10:56:18 AM10/20/10
to Ragesh For U :-), Edwin Kempin, Fredrik Luthander, Repo and Gerrit Discussion
2010/10/20 Ragesh For U :-) <rage...@gmail.com>

Not sure how much helpful, but we avoid such situation by below scenario in Hudson.
Our Hudson gives +1 Verify on successful build but gives -1 Code review on failure instead of -1 verify. Now there are Quality board members with verify rights who can pitch in on scenarios like you mentioned to save the gerrit change.

Is there some documentation how this can be configured in Hudson ?
 
--
Matthias

Jyrki Puttonen

unread,
Oct 20, 2010, 12:44:37 PM10/20/10
to Matthias Sohn, Repo and Gerrit Discussion
Hi all,

I think that Ragesh is using Gerrit Trigger -plugin instead of Gerrit Plugin. Right now there's two different plugins ( http://hudson.361315.n4.nabble.com/We-would-like-to-contribute-a-new-Gerrit-plugin-td2224606.html ) and I'm maintaining the Gerrit plugin with minimal effort ( I'll fix bugs and add I can add some functionality into it if needed). 

At the moment, setting review values with Gerrit plugin is not possible, but I'll add it in few hours. 

-Jyrki
 
--
Matthias

Ragesh For U :-)

unread,
Oct 22, 2010, 12:33:15 PM10/22/10
to Matthias Sohn, Edwin Kempin, Fredrik Luthander, Repo and Gerrit Discussion
We are using our own developed and contributed plug-in gerrit-trigger plugin. You can find the plugin details here http://wiki.hudson-ci.org/display/HUDSON/Gerrit+Trigger . Its easy to configure and define the process for Gerrit-Hudson integration. Also you can see some information about the usage at digg also. http://about.digg.com/blog/continuous-deployment-code-review-and-pre-tested-commits-digg4

best regards
-Ragesh Nair
Hudson Team, Sonyericsson

Matthias Sohn

unread,
Oct 23, 2010, 7:30:28 PM10/23/10
to Ragesh For U :-), Edwin Kempin, Fredrik Luthander, Repo and Gerrit Discussion
2010/10/22 Ragesh For U :-) <rage...@gmail.com>

We are using our own developed and contributed plug-in gerrit-trigger plugin. You can find the plugin details here http://wiki.hudson-ci.org/display/HUDSON/Gerrit+Trigger . Its easy to configure and define the process for Gerrit-Hudson integration. Also you can see some information about the usage at digg also. http://about.digg.com/blog/continuous-deployment-code-review-and-pre-tested-commits-digg4

I tried the gerrit trigger plugin again using the latest version and it works really nice :-)
Documentation at http://wiki.hudson-ci.org/display/HUDSON/Gerrit+Trigger is a bit outdated,
the newest git plugin doesn't show the combo "Choosing Strategy" mentioned in the section
"Usage with the Git plugin" -- but it works.

--
Matthias

Ragesh For U :-)

unread,
Oct 23, 2010, 11:21:00 PM10/23/10
to Matthias Sohn, Edwin Kempin, Fredrik Luthander, Repo and Gerrit Discussion
Yeah I agree regarding the wiki..... we were a bit busy with some bug fixes and the new manual triggering of gerrit trigger feature..... will update the wiki on next release or soon....

Regards
-Ragesh

Luciano Carvalho

unread,
Oct 25, 2010, 1:10:39 PM10/25/10
to Shawn Pearce, Edwin Kempin, Repo and Gerrit Discussion
Hey Shawn,

Is Gerrit blocking (not showing the "X" on) the record where someone applied a Verified-1 or CodeReview-2 ?
Or better: can the owner of the change remove the veto? Or that's blocked somehow?

Thanks,

Luciano.


Shawn Pearce

unread,
Oct 26, 2010, 2:22:09 PM10/26/10
to Luciano Carvalho, Edwin Kempin, Repo and Gerrit Discussion
On Mon, Oct 25, 2010 at 10:10, Luciano Carvalho <lsca...@gmail.com> wrote:
> Is Gerrit blocking (not showing the "X" on) the record where someone applied
> a Verified-1 or CodeReview-2 ?

Huh? I'm not sure I understand what you are asking.

> Or better: can the owner of the change remove the veto? Or that's blocked
> somehow?

Yes. The owner of a change is able to remove a reviewer. Which would
also remove the blocking vote.

Reply all
Reply to author
Forward
0 new messages