When you catch it in the act of running the same build twice, I suggest that you look into the process tree and find out who started who. If it's not two concurrent builds running of different branches clashing with one another, then one of the build processes is probably an orphan.
When you run this stuff under Passenger, it starts and stops frontend workers at will. These, in turn, start and stop builder processes, one per project. There is a protection mechanism in the form of a builder lock file, that is intended to prevent CC.rb from running multiple builders ob the same project directory; HOWEVER, if a builder process starts a build, which then doesn't die when the builder dies (say, a rescue Exception clause eating the stop signals, which are Exceptions in Ruby), you can end up with concurrent builds per project, I guess. Personally, I simply don't run CC.rb frontend under Passenger because of these oddball child process management scenarios. What I do instead is follow the instructions in daemon/cruise and let init run a single frontend process with a single set of builders. On Tue, Jan 25, 2011 at 9:54 AM, Daniel Berger <[email protected]> wrote: > On Mon, 2011-01-24 at 18:26 -0700, Alexey Verkhovsky wrote: > > On Mon, Jan 24, 2011 at 4:17 PM, Daniel Berger <[email protected]> > > wrote: > > So, it looks like 2 processes there, 9330 and 9331. The latter > > has the > > former as its parent pid. > > > > Looks exactly how it should. One is shell, the other one is ruby that > > it invoked. > > > > > > > On Mon, 2011-01-24 at 15:03 -0700, Daniel Berger wrote: > > > > Not that I can see. We do have multiple watchers setup > > that are pointing > > > > at the same project but different branches. > > > > > > Accessing the same database and/or some other resource(s), I presume? > > I'd bet that's the problem. To fix it, you want to configure CC.rb to > > serialize builds (i.e., make it so that only one build is running at > > any given time). There is a commented out setting for this in the > > site_config.rb, you just need to find and uncomment it. > > I tried that but it didn't solve my problem unfortunately. This is tied > to Passenger somehow I think, because when I run the build using WEBrick > it only runs the tests once, and they pass. > > I'll play with our :cruise task some more and see if I can narrow it > down. > > Regards, > > Dan > > _______________________________________________ > Cruisecontrolrb-users mailing list > [email protected] > http://rubyforge.org/mailman/listinfo/cruisecontrolrb-users > -- Alexey Verkhovsky http://alex-verkhovsky.blogspot.com/ CruiseControl.rb [http://cruisecontrolrb.thoughtworks.com]
_______________________________________________ Cruisecontrolrb-users mailing list [email protected] http://rubyforge.org/mailman/listinfo/cruisecontrolrb-users
