On 11/28/12 7:49 PM, Garrett Cooper wrote:
On Nov 28, 2012, at 9:39 AM, Alfred Perlstein <bri...@mu.org> wrote:
On 11/28/12 12:01 AM, Andre Oppermann wrote:
On 28.11.2012 00:59, Robert N. M. Watson wrote:
On 27 Nov 2012, at 23:29, Andre Oppermann wrote:
Andre.. this breaks incoming connections. TCP is immediately reset and never
even gets to the
listener process. You need to back out of fix this urgently please.
I just found out and fixed it. Sorry for the breakage.
I'd like to see a much more thorough use of "Reviewed by:" in socket and
TCP-related commits -- this
is very sensitive code, and a second pair of eyes is always valuable.
Post-commit review is not a
substitute. Looking back over similar changes in the socket code over the last
two years, I see
that almost all have reviewers, so I think it would be reasonable to consider
it mandatory for these
subsystems at this point. The good news is that we have lots of people with
expertise in it.
Good to see you becoming more active again. :-) And yes,
you have a point there.
Yes -- this is only about three weeks old, however; for the prior six-twelve
months, I've been fairly non-existent in FreeBSD-land due to outside
obligations :-).
Just saw that I did indeed send you a review request three weeks ago. ;-)
At the end of a rather long email though.
Yes, indeed -- no patch was attached, and it followed quite a long e-mail on your plans to rewrite the TCP
stack. I'm afraid that went onto the "read this later as time permits" pile as I was at a
conference, rather than the fast-path "oh, quickly review this patch" pile. However, simply
committing the patch rather than trying a bit harder to find a reviewer isn't the right answer either. To
maximise the likelihood of a review, construct an e-mail with a subject line like "Review request:
(patch description)", attach the patch, and include a proposed commit message.
Yes, and I didn't really expect you to answer (at least quickly) during
your FreeBSD hiatus. So it was seeking review by chance.
Alas I found and fixed the bug myself within 2.5hrs. While not optimal,
a sign of poor prior testing and too much trust into the submitter of
the patch it wasn't an earth shattering event. Doesn't distract from
the fact that it was mea culpa in any case though.
For prior review of kern_socket* and netinet/tcp_* related changes it has
been on and off by various committers over the past year. If we do have
a policy of prior review required then it should be made official and
codified in MAINTAINERS and universally applied to all.
Personally I don't think we need any more anchors attached to people's feet
when developing FreeBSD.
Mistakes will happen, they will happen in head. Slowing down the process to eliminate mistakes
only works to slow down change and give a false sense of "fixing stability" when in fact
the only thing "stable" is the slowness of submitting code.
Organizing cabals of people to review code is the best way to go. It's an
extension of the maintainers concept applied in a better fashion because it
encourages several developers to provide input on a series of commits instead
of one.
I know it's sort of done in some groups [based on commit messages], but it
would be nice to have it better formalized and socialized as well. Things like
this are helpful for other potential freebsd contributors/developers (like some
folks I work with for instance!).
An extension of this code review idea would probably be reviewboard. Email
based review is doable and a lot of OSS groups use it, but there are some nice
points to using a more advanced tool, in particular:
1. Colorized diffs.
2. Various diff niceties (hide white space changes, etc).
3. It does a reasonable job at establishing code context (code block A has
moved to B).
There are 2 FreeBSD corporate consumers that use it, with at least one other
group considering it, and there are probably more groups that using it as well.
Plus it integrates well with p4, and does pretty well with git and svn.
I've seen what happens with large groups, it doesn't scale and basically
you wind up with the following type of reviewers:
1) whitespace nazis
2) rubber stampers
3) forever absentee reviewers
4) name nazis
The whitespace nazis will never give review approval until you've gone
through 600 iterations of the code. Imagine Bruce... but if he wasn't
pragmatic and awesome and didn't have other amazing skills.
The rubber stampers are friends or people that feel bad about what's
happening to you by the whitespace nazis and name nazis so they just
glance and approve based on the fact that you're a good guy who has
committed to the same place before and usually doesn't break stuff.
The forever absentee reviewers are the ones that sign up to review, but
never are around to review, or just don't have the time. Eventually an
entire subsystem becomes "owned" by absentee reviewers and then it's a
huge, delicate and annoying process to get that part of the code under
some other list or remove the absentee people.
Finally the name nazis, these will debate you on if your code should be
of the name kern_foo.c, subr_foo.c or maybe in the new-name-ng should
actually be called kernel_subr_foo.c, but whatever you name something,
they will make you change it, because you are wrong.
Anyhow, that is my opinion on heavy handed reviews in a large project.
I've been fortunate enough to work on one project where luckily it was
dominated by rubber stampers, that was silly but awesome because at
least we could get stuff done...
Unfortunately I then worked on quite a few dominated by a mix of all the
four I mentioned. The result sucked.
-Alfred
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"