Greetings, I need some help... please be gentle :-)
MY SETUP: 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: capistrano (1.2.0) daemons (1.0.2) gem_plugin (0.2.1) mongrel (0.3.13.4, 0.3.13.3) mysql (2.7) needle (1.3.0) rails (1.1.6) ruby-net-ldap (0.0.4) NOTE: My MySql server is running on a different machine than Mongrel. THE PROBLEM The problem, is that after a period of inactivity Mongrel just stops responding. I believe the problem has to do with MySql as mentioned in the FAQ. I've confirmed this--I think--by creating a dummy app that doesn't use MySql for any of the page requests. In this instance, after long periods of inactivity Mongrel works without any problems. 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 (deveopment.log). 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 localhost:50042->localhost:51299 (CLOSE_WAIT) curl 20784 agile 4u IPv4 0xffffffffb1083200 0t0 TCP webfarm-dev.Berkeley.EDU:51330->webfarm-dev.Berkeley.EDU:80 (CLOSE_WAIT) curl 20785 agile 4u IPv4 0xffffffffb9477a00 0t0 TCP webfarm-dev.Berkeley.EDU:51333->webfarm-dev.Berkeley.EDU:80 (CLOSE_WAIT) curl 20788 agile 4u IPv4 0xffffffffb1025c00 0t0 TCP webfarm-dev.Berkeley.EDU:51339->webfarm-dev.Berkeley.EDU:80 (CLOSE_WAIT) curl 20798 agile 4u IPv4 0xffffffffa02b9a00 0t0 TCP webfarm-dev.Berkeley.EDU:51345->webfarm-dev.Berkeley.EDU:80 (CLOSE_WAIT) curl 20799 agile 4u IPv4 0xffffffffb945be00 0t0 TCP webfarm-dev.Berkeley.EDU:51348->webfarm-dev.Berkeley.EDU:80 (CLOSE_WAIT) curl 20805 agile 4u IPv4 0xffffffffb0d7ae00 0t0 TCP webfarm-dev.Berkeley.EDU:51357->webfarm-dev.Berkeley.EDU:80 (CLOSE_WAIT) 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 my rails environment.rb file, as per the FAQ, this had no effect. 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. Regards, Steven _______________________________________________ Mongrel-users mailing list [email protected] http://rubyforge.org/mailman/listinfo/mongrel-users
