[Mongrel] Monrel Woes on Solaris x86
Steven Hansen
runner at berkeley.edu
Sun Nov 19 22:14:36 EST 2006
Steven Hansen wrote:
>
>
> On 11/16/06, Steven Hansen <runner at berkeley.edu> wrote:
> >
> > Greetings,
> >
> > I need some help... please be gentle :-)
>
> Hello Steven, and thanks for the good collection of info ;)
>
> > NOTE: My MySql server is running on a different machine than Mongrel.
>
> Do you have access to any of the MySql server's configuration data?
> Which settings (if any) have been altered from the defaults? I ask
> due to this bit:
>
> > 4) I tried adding "ActiveRecord::Base.verification_timeout = "14400" to
> > my rails
> > environment.rb file, as per the FAQ, this had no effect.
>
> If the settings have been altered per the "Decrease the value of
> connect_timeout" section of the following document:
>
> http://mysqldatabaseadministration.blogspot.com/2005/11/mysql-5-optimization-and-tuning-guide.html
>
>
> I know its suggestions are for MySql 5 (vs. your version), but if
> changes similar to these have been made on your MySql server, you
> would need to change the "14400" value in your Rails environment to a
> lower value than the one set for interactive_timeout on the MySql end
> of things (assuming the Mongrel FAQ is accurate and current in that
> regard; I'm new to Mongrel, myself).
>
> > MOVING FORWARD
> > I'm not really sure where to go from here. Like I said, I have a
> strong
> > suspicion that MySql
> > is the culprit, but I'm not sure how to fix the problem. If anyone
> > could give me some advice
> > on what to try next, I would really appreciate it.
>
> If you could check (with someone, or otherwise) the MySql
> server-in-question's configuration to make sure Rails is using a low
> enough verification_timeout, that would be another positive step, IMO.
> Maybe it'll turn up something, as it sounds like the 'timeout' is
> happening at approximately 20 minutes for you, vs. documentation I
> have seen suggests that the default is 480 minutes. Good Luck.
>
> > Regards,
> > Steven
>
> Sincerely,
> -Parker
>
>
>
> Hi Parker,
>
> Thanks for your suggestions. Sorry for the late reply, it looks like
> my over zealous spam
> filter snagged your reply, I stumbled on your email while browsing the
> mailing list
> archives :-P
>
> I am--for now--administering the machine that the database is running
> on and I will
> try your suggestions.
>
> FWIW, I fired up good old webrick to see if the same problem would
> occur. Sure enough,
> after 20 minutes of inactivity the app would no longer respond through
> the browser or by
> doing (curl localhost:50042) while logged on to the machine.
>
> Regards,
> Steven
>
>
>
Well it looks like I've resolved the problem. Hooray! My mysql server's
(mysqld) wait_timeout was set as follows (wait_timeout=28800). Which as
Parker mentioned is 480 minutes or 8hrs! Here is a link to the mysql
docs that has a description of what the wait_timeout var controls, as
well as many other mysqld variables:
http://dev.mysql.com/doc/refman/4.1/en/server-system-variables.html
And for anyone who stumbles on an archive of this message, here is the
mysql docs description of "wait_timeout"
"The number of seconds the server waits for activity on a
non-interactive connection before closing it. This timeout applies only
to TCP/IP connections, not to connections made via Unix socket files,
named pipes, or shared memory.
On thread startup, the session |wait_timeout| value is initialized from
the global |wait_timeout| value or from the global |interactive_timeout|
value, depending on the type of client (as defined by the
|CLIENT_INTERACTIVE| connect option to |mysql_real_connect()|). See also
|interactive_timeout|."
Interestingly enough, the mongrel FAQ says that all you need to do is to
set (ActiveRecord::Base.verification_timeout = 14400) or a value lower
than the server's wait_timeout value. Before altering my server's
wait_timeout setting, I tried setting
ActiveRecord::Base.verification_timeout to 60, 30 and 5. None of these
settings made any difference as far as preventing Mongrel from locking
up. Perhaps I added the setting in the wrong location in my rails
environment? The FAQ doesn't mention where this setting should be
added, I just assumed it should be added to config/enviroment.rb if
this is wrong, let me know.
-Steven
More information about the Mongrel-users
mailing list