On Thu, 9 Aug 2007 20:13:27 -0600
"Alexey Verkhovsky" <[EMAIL PROTECTED]> wrote:
 
> On 8/9/07, Michael Steinfeld <[EMAIL PROTECTED]> wrote:
> > I installed monit but which lead me to find the correct way to
> > start/stop mongrel instances one pid at a time.

> In RubyWorks Production Stack we solve this problem with runit. And it
> was 37 Signals guys who told me about it. runit doesn't require
> service processes to detach themselves, so Mongrel's shortcomings in
> this area become a non-issue.

So let me see if I have this right.  You are saying the PID handling in Mongrel 
isn't right, but every single patch you've submitted to me in an attempt to fix 
it has been an ugly shitfuck patch that isn't cross platform and myopically 
only solves your problem.

Now, I could probably handle that, but then you try to say that the solution is 
to use runit.  You seen the code in runit?  Let me give you a taste of the 
if-forrest extravaganza:

    if (verbose)
      strerr_warn5(INFO, "processing: ", ld->name, "/", ld->fnsave, 0);
    if ((fd =open_read(ld->fnsave)) == -1)
      fatal2("unable to open input for processor", ld->name);
    if (fd_move(0, fd) == -1)
      fatal2("unable to move filedescriptor for processor", ld->name);
    ld->fnsave[26] ='t';
    if ((fd =open_trunc(ld->fnsave)) == -1)
      fatal2("unable to open output for processor", ld->name);
    if (fd_move(1, fd) == -1)
      fatal2("unable to move filedescriptor for processor", ld->name);
    if ((fd =open_read("state")) == -1) {
      if (errno == error_noent) {
        if ((fd =open_trunc("state")) == -1)
          fatal2("unable to create empty state for processor", ld->name);
        close(fd);
        if ((fd =open_read("state")) == -1)
          fatal2("unable to open state for processor", ld->name);

Oh yeah, that is sooooo fucking great.  This kind of bullshit DJB style code is 
all over runit.  I wouldn't touch it if it was wrapped in cellophane and I was 
behind a cement wall accessible only via a BL4 airlock.  Runit is nasty and it 
amazes me that people use the damn thing at all.

The fact of the matter is, *RUBY* has shitty PID management.  That ultimately, 
*YOU* are supposed to use Mongrel as a goddamned *LIBRARY* if you want to embed 
it in your own app server and manage the processes better.  The existing 
scripts are just to handle the 90% cases of developers running stuff locally or 
the majority of hosting situations.  It's not like Apache, you are not only 
allowed to modify it and put it in your own stuff but you are violently 
encouraged to do it.  Hell there's several books that teach you how and a ton 
of examples and SIX fucking entire web frameworks that all use Mongrel this way.

Get off your ass and read some code for a change.

Now normally, I wouldn't get bent out of shape, but you represent a company 
that's using my software to make money (or try to make money, since you guys 
probably couldn't sell sweet tea to a dying man in the Sahara).  What pisses me 
off is if you don't like it, then why the hell do you have "Mongrel is stable, 
reasonably fast, very easy to configure, and can be used in both production and 
development environments." on your damn web site you leeches?

Oh, because putting that there makes potential customers think you like Mongrel 
and since they all like mongrel (love even) that gives you some free street 
cred.

Well Alex and Thoughtworks, I'm going to be giving full control of Mongrel to a 
group of people who just volunteered.  You're free to use all your powers of 
Neural Linguistic Programming to convince them to include every dumbass thing 
you want, and they're free to include it if they want.  There won't be anyone 
standing in your way and you're free to completely ruin my baby.

And without any more excuses, I feel that it's time you start paying a bit of 
this free love and work back to the community in the form of some damn code.

Oh, and quit calling it a damn "stack".  It's not a application stack in any 
way because it doesn't have a complete administrative system that ties it all 
together.  It's a bunch of RPMs that you either stole or repackaged and you 
provide nothing more than a basic hosting location for people.  Add some value 
for once and maybe people might actually pay you for the damn product.

-- 
Zed A. Shaw
- Hate: http://savingtheinternetwithhate.com/
- Good: http://www.zedshaw.com/
- Evil: http://yearofevil.com/
_______________________________________________
Mongrel-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/mongrel-users

Reply via email to