Concern about stability

Hi,

I am building a test site on my PowerBook (G4) using rails, sqlite3, and
webrick.
While running in development mode, the web server completely halted.
Error message is:


/usr/local/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.1.0/lib/sqlite3/resultset.rb:74:
[BUG] Segmentation fault
ruby 1.8.4 (2005-12-24) [powerpc-darwin8.7.0]

Abort trap

It looks like sqlite3-ruby module has a bug.

My questions are:

  • Why did the web server die when sqlite3 had a problem?
  • Is it because it’s development mode?
  • Or is it because it’s webrick which is not a very strong web server?

I am very worried that something like this might happen in a production
site.
Is it likely to happen?

Thanks.

Sam

2006/10/7, Sam K. [email protected]:

Hi,

I am building a test site on my PowerBook (G4) using rails, sqlite3, and
webrick.
While running in development mode, the web server completely halted.

The PowerBook isn’t your production platform, right? Why the worries
then?

sqlite is not production material and if you are using AJAX it is not
even
development material.
You will get all sorts of problems regarding multiple access to the
database.

On 10/7/06, Codeblogger [email protected] wrote:

The PowerBook isn’t your production platform, right? Why the worries then?


Never be afraid to try something new. Remember, amateurs built the ark;
professionals built the Titanic!

Hi Tom,

Tom M. wrote:

sqlite3 is a client library with no server. The process using
it (WEBrick running your Rails program) is segfaulting, so it’s
not sqlite3 that is having the problem, per se, but your program
indirectly due to its usage of sqlite3.

Now I understand. SQLite3 is an embedded DB unlike MySQL.
I forgot that.

You won’t need to worry about this in production, because the web server
will not be processing Rails requests. Instead, it will be serving
static
content and passing dynamic requests back to the application layer
servers,
perhaps mongrel or FCGI.

Thanks for the explanation. I’m not worried now.

As in all things, it’s very important in a production environment to be
certain that if a process fails for any reason, it will be restarted.

Do I have to configure it like that or is it already configured like
that?

Sam

On Oct 7, 2006, at 8:08 AM, Sam K. wrote:

My questions are:

  • Why did the web server die when sqlite3 had a problem?

sqlite3 is a client library with no server. The process using
it (WEBrick running your Rails program) is segfaulting, so it’s
not sqlite3 that is having the problem, per se, but your program
indirectly due to its usage of sqlite3.

  • Is it because it’s development mode?

No.

  • Or is it because it’s webrick which is not a very strong web server?

No.

You won’t need to worry about this in production, because the web server
will not be processing Rails requests. Instead, it will be serving
static
content and passing dynamic requests back to the application layer
servers,
perhaps mongrel or FCGI.

As in all things, it’s very important in a production environment to be
certain that if a process fails for any reason, it will be restarted.


– Tom M.