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