# \[ANN\] SCGI Rails Runner RubyForge Project

**URL:** <https://www.ruby-forum.com/t/ann-scgi-rails-runner-rubyforge-project/98701>\
**Category:** Rails\
**Created:** [January 30, 2006, 8:13am UTC](https://www.ruby-forum.com/t/ann-scgi-rails-runner-rubyforge-project/98701 "2006-01-30T08:13:19Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Zed\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/da6949/32.png) [@Zed\_S](https://www.ruby-forum.com/u/Zed_S)\
**Post date:** [January 30, 2006, 8:13am UTC](https://www.ruby-forum.com/t/ann-scgi-rails-runner-rubyforge-project/98701/1 "2006-01-30T08:13:19Z")

</div>

Hello Rails Folks,

This is just a quick announcement to let people know that SCGI Rails  
Runner now has a RubyForge project at:

[http://rubyforge.org/projects/scgi/](http://rubyforge.org/projects/scgi/)

There’s already a few bug and feature requests there and I’ll be  
quickly putting more docs online as well as a new release shortly.  
The latest source is checked into subversion if you are interested in  
tracking it closely.

Feel free to put all your bugs and features into the Tracker. You  
can also subscribe to the mailing list and post any FAQs to the  
forums. I’m also open to advice on how to run the RubyForge project.

Thanks for your time.

Zed A. Shaw

> **[Zed A. shaw](https://zedshaw.com/)**
>
> Personal essays and writings by Zed A. Shaw.

P.S. My time will be split between SCGI and Mongrel (http://  
[rubyforge.org/projects/mongrel/](http://rubyforge.org/projects/mongrel/)) until they can both run Rails in a  
stable fashion. Debate over the relative merit of both is welcome.

---

<div class="post-metadata">

**Author:** ![Zed\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/da6949/32.png) [@Zed\_S](https://www.ruby-forum.com/u/Zed_S)\
**Post date:** [January 31, 2006, 11:11am UTC](https://www.ruby-forum.com/t/ann-scgi-rails-runner-rubyforge-project/98701/2 "2006-01-31T11:11:32Z")

</div>

Zed’s SCGI Runner (SRR) is committed to using Ruby threads, not  
processes or even native OS threads.

This means it will _never_ have the stability and robustness large  
scale, critical apps need.

A misbehaving thread can bring the whole thing down. It can lock up and  
keep the whole system locked. A long syscall can paralyze everything.  
I’ve tried the SRR (can’t beat it’s simplicity or coolness!), but had to  
give it up due to this problem.

Zed S. wrote:

> Hello Rails Folks,
> 
> This is just a quick announcement to let people know that SCGI Rails  
> Runner now has a RubyForge project at:
> 
> [http://rubyforge.org/projects/scgi/](http://rubyforge.org/projects/scgi/)
> 
> There’s already a few bug and feature requests there and I’ll be  
> quickly putting more docs online as well as a new release shortly.  
> The latest source is checked into subversion if you are interested in  
> tracking it closely.
> 
> Feel free to put all your bugs and features into the Tracker. You  
> can also subscribe to the mailing list and post any FAQs to the  
> forums. I’m also open to advice on how to run the RubyForge project.
> 
> Thanks for your time.
> 
> Zed A. Shaw  
> [http://www.zedshaw.com/](http://www.zedshaw.com/)
> 
> P.S. My time will be split between SCGI and Mongrel (http://  
> [rubyforge.org/projects/mongrel/](http://rubyforge.org/projects/mongrel/)) until they can both run Rails in a  
> stable fashion. Debate over the relative merit of both is welcome.

---

<div class="post-metadata">

**Author:** ![Zed\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/da6949/32.png) [@Zed\_S](https://www.ruby-forum.com/u/Zed_S)\
**Post date:** [January 31, 2006, 11:46am UTC](https://www.ruby-forum.com/t/ann-scgi-rails-runner-rubyforge-project/98701/3 "2006-01-31T11:46:27Z")

</div>

List R. wrote:

> This means it will _never_ have the stability and robustness large  
> scale, critical apps need.  
> Yes it can. Robustness can be built in through redundancy, which is  
> precisely what the Rails shared-nothing model allows, and which allows  
> scaling in the first place.

> A misbehaving thread can bring the whole thing down. It can lock up and  
> keep the whole system locked.  
> And you can DOS a Linux box with a dodgy malloc(). And yet, somehow,  
> the universe has yet to come crashing down 🙂

> I’ve tried the SRR (can’t beat it’s simplicity or coolness!), but had to  
> give it up due to this problem.  
> I can’t fault your opinion, I can only say that mine differs. Have you  
> got a failing case that can be replicated?

---

<div class="post-metadata">

**Author:** ![Zed\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/da6949/32.png) [@Zed\_S](https://www.ruby-forum.com/u/Zed_S)\
**Post date:** [January 31, 2006, 1:11pm UTC](https://www.ruby-forum.com/t/ann-scgi-rails-runner-rubyforge-project/98701/4 "2006-01-31T13:11:25Z")

</div>

On Jan 31, 2006, at 5:11 AM, List R. wrote:

> Zed’s SCGI Runner (SRR) is committed to using Ruby threads, not  
> processes or even native OS threads.

Yes, this is true but there’s not much other choice. Sad fact is  
that even Ruby’s _own_ IO.select has problem with Ruby’s own  
threads. Apart from using a special build of Ruby that has native  
threads there isn’t much you can do.

Incidentally, you should read [The C10K problem](http://www.kegel.com/c10k.html) to  
understand why processes and threads don’t give you performance.

> This means it will _never_ have the stability and robustness large  
> scale, critical apps need.

Never is a pretty strong word, but I will say you should look at my  
other project in the works called Mongrel ([http://rubyforge.org/](http://rubyforge.org/)  
projects/mongrel/) for clues to the next release of SCGI.

> A misbehaving thread can bring the whole thing down. It can lock  
> up and  
> keep the whole system locked. A long syscall can paralyze everything.  
> I’ve tried the SRR (can’t beat it’s simplicity or coolness!), but  
> had to  
> give it up due to this problem.

This is true as well. If you write code that makes a thread  
misbehave then you are screwed. It is easy to avoid the problem by  
simply making sure that you clean up all your created resources when  
your controller action finishes–which is what you should be doing  
anyway. That being said it’s a pretty big change for some people to  
make since it requires understanding how their resources should be  
managed. The next release may try to help people out with this, but  
I’m also afraid this will make SRR more complex.

BTW, I’d love a small sample snippet of code which demonstrates this  
problem. I’ve had maybe 3 people complain about this yet none of  
them could give me a piece of sample code which replicated the  
problem. It’s really driving me insane.

Zed A. Shaw

> **[Zed A. shaw](https://zedshaw.com/)**
>
> Personal essays and writings by Zed A. Shaw.

---

<div class="post-metadata">

**Author:** ![Zed\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/da6949/32.png) [@Zed\_S](https://www.ruby-forum.com/u/Zed_S)\
**Post date:** [January 31, 2006, 7:45pm UTC](https://www.ruby-forum.com/t/ann-scgi-rails-runner-rubyforge-project/98701/5 "2006-01-31T19:45:11Z")

</div>

Heh, if we could only get Doug Lea hooked on Ruby…

b

PS: if you don’t know who he is, google it…

---

<div class="post-metadata">

**Author:** ![Zed\_S](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/z/da6949/32.png) [@Zed\_S](https://www.ruby-forum.com/u/Zed_S)\
**Post date:** [February 2, 2006, 6:05am UTC](https://www.ruby-forum.com/t/ann-scgi-rails-runner-rubyforge-project/98701/6 "2006-02-02T06:05:24Z")

</div>

Nice work, Zed. Thanks for keeping SCGI on the railroad of  
progress. I didn’t doubt for a minute that your mad skillz had left  
the building 😉

Duane J.  
(canadaduane)  
[http://blog.inquirylabs.com/](http://blog.inquirylabs.com/)
