[Mongrel] Monrel Woes on Solaris x86
runner at berkeley.edu
Thu Nov 16 16:11:01 EST 2006
I need some help... please be gentle :-)
Solaris-X86, ruby-1.8.4, Apache-2.2.0, Mongrel-0.3.13.4, MySql-4.1.10a
I am using the typical setup with apache proxying request to mongrel
with mod_proxy_balancer. Currently, I am only running a single
instance of mongrel behind the proxy.
I am also using the following gems with this app:
mongrel (0.3.13.4, 0.3.13.3)
NOTE: My MySql server is running on a different machine than Mongrel.
The problem, is that after a period of inactivity Mongrel just stops
I believe the problem has to do with MySql as mentioned in the FAQ.
this--I think--by creating a dummy app that doesn't use MySql for any of
requests. In this instance, after long periods of inactivity Mongrel
works without any
WHAT I'VE TRIED:
1) After 20 minutes of inactivity, I try to load the page in the
browser. The browser
just hangs and eventually times out. I then ssh'd to the machine and
did a (curl localhost:50042),
mongrel does not respond. I can see that mongrel is still running if I
to a (ps -A).
Running (top) shows that mongrel is consuming around 34M of memory and
using no .01% CPU.
I'm running mongrel in development mode, yet no entries are making it to
I'm also running mongrel in debug_mode and no entries are being added to
any of the
log files in the mongrel_debug directory.
BTW, I am running mongrel on port 50042 because this is the port I've
been given permission to
run Mongrel on.
2) After hitting mongrel with a bunch of (curl locahost:50042) calls, I did
(lsof -i -P | grep CLOSE_WAIT) and here is the output:
mongrel_r 5522 agile 6u IPv4 0xffffffffa02b8e00 0t617 TCP
curl 20784 agile 4u IPv4 0xffffffffb1083200 0t0 TCP
curl 20785 agile 4u IPv4 0xffffffffb9477a00 0t0 TCP
curl 20788 agile 4u IPv4 0xffffffffb1025c00 0t0 TCP
curl 20798 agile 4u IPv4 0xffffffffa02b9a00 0t0 TCP
curl 20799 agile 4u IPv4 0xffffffffb945be00 0t0 TCP
curl 20805 agile 4u IPv4 0xffffffffb0d7ae00 0t0 TCP
NOTE: I do not have access to the root account, my user name is
"agile". I'm not even sure what (lsof)
is telling me here, so if someone could give me a hint, or point me to a
url with a good overview, that
would be killer.
3) After checking the logs (which show nothing) and running (lsof) I
tried to shut mongrel down with
(mongrel_rails mongrel::stop -p pids/mongrel.pid
I get the response "Sending TERM to Mongrel at PID 5522...Done."
However, when I check the log directory
the mongrel.pid file is still there and (ps -A) verifies that mongrel is
still running. I called the
shutdown method 4 more times and on the 4th try mongrel finally stops.
I then checked the monrel.log
file and found the following:
"Thu Nov 16 09:21:00 PST 2006: Reaping 1 threads for slow workers
because of 'shutdown'
Thread #<Thread:0x8d54f50 run> is too old, killing.
Waiting for 1 requests to finish, could take 60 seconds."
4) I tried adding "ActiveRecord::Base.verification_timeout = "14400" to
environment.rb file, as per the FAQ, this had no effect.
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.
More information about the Mongrel-users