On Fri, Jun 20, 2008 at 12:16:04PM -0400, Richard Lowe wrote:
> Dean Roehrich <Dean.Roehrich at sun.com> writes:
> 
> > One of my users managed to hose up my gate hooks a few weeks back.  For our
> > project I wanted to have the gate hooks enforce a few things such as the 
> > first
> > line of the cset comments, only one head, ...and cstyle.  It's easy to 
> > enforce
> > the cstyle rules, given the way our source tree is set up.
> >
> > This one user tried to push a file that was formatted to a very different
> > cstyle.  We discovered that if the file is large enough, 1900 lines and 65K 
> > in
> > this case, and generates enough cstyle output, 2550 lines and 217K in this
> > case, then cadmium and cstyle will hit a deadlock.  Cadmium will be 
> > attempting
> > to write to p.stdin.write() while cstyle is also writing, and neither is
> > reading.  We see this only when cstyle is being run by my gate hooks, via a
> > push over ssh.
> >
> 
> That's clearly a bug in the python shim between the two, we shouldn't
> do that, and it will need to be fixed.  (you'd be just as screwed if
> you did 'hg cstyle', or should have been...)

I don't see the problem when running 'hg cstyle'.

I'll agree there's a bug in Cstyle.py, but when run on a gate, it doesn't make
sense for the gate to run _all_ of the cstyle stuff--let it bail out as early
as possible.  Force the user to go back to hg nits/pbchk for the details, and
free up the gate for other people.

Dean

Reply via email to