![]() |
Problem with Memcache / forking
http://www.modrails.com/documentatio...haring_harmful
I'm running into a similar problem with Litespeed... Memcache is returning incorrect objects, sometimes. Any ideas of a solution? How would one go about reseting the connection to memcache each time it's forked, if this is the problem? |
This also just started happening with the new Litespeed and Rails 2.3 (Rack)..
|
Yes, need to reset the connection to memcache. Just close all connections after the initialization.
|
Would it be a good place to do this in environment.rb, or is that not going to get executed when it's forked?
|
It should be fine. environment.rb only get loaded once I think.
|
Doesn't seem to help, if it's only loaded once i'm assuming that means it won't reset when the process gets forked.. where would we hook into that?
|
maybe it is too early as the connection to memcache was established after loading environment.rb.
Please try to patch RailsRunner.rb, at where "ActiveRecord::Base.clear_active_connections!" is called. |
It worked, but we had to manually create a cache object for the session store so we could call reset on it (and then just SESSION_CACHE.reset right before the clear_active_connections!)
In the edge of rails it looks like there is a way to access the Session memcache instance, which would mean it could in the future be fixed in RailsRunner.rb by default.. something to look forward to perhaps :) |
Yes, please keep us posted when it is available, so we can add som generic code like "clear_active_connections!" to address it in RailsRunner.rb .
|
| All times are GMT -7. The time now is 03:24 AM. |