On Tue, Apr 03, 2007 at 03:34:11PM -0400, François Beausoleil wrote:
> Hi all,
> 
> We're attempting to use Ferret with the DRb server at the moment, and
> it doesn't work, at all...
> 
> = Executive Summary
> 
> The DRb server process keeps on calling the remote index to the DRb
> server process...  Which means DRb is calling itself, and itself, and
> itself, until Ruby kills the Thread with a SystemStackLevel error.
> 
[..]
> 
> From my limited understanding of the code, it looks like the Ferret
> DRb server is using a remote index instead of a local one.

I'd guess that's the problem. The decision what indexer to use is made
in act_methods.rb, line 62, depending on the state of
ActsAsFerret::Remote::Server.running

So if the acts_as_ferret method would be called before the DRb server is
up and running what you describe could happen. Maybe there's some code
in your environment.rb that causes the loading of your model classes by
script/runner before the server gets a chance to start up?

As I think of it now, the way how this is done might not be the ideal
solution to the problem of deciding whether acts_as_ferret is called in
the DRb-server or not - an environment variable set when
starting the server and checking this in act_methods.rb instead of the
server's running method might help:

IS_SERVER=true script/runner -e development 
vendor/plugins/acts_as_ferret/script/ferret_start

and in act_methods line 62:

options.delete(:remote) if ENV['IS_SERVER']

Jens


-- 
Jens Krämer
webit! Gesellschaft für neue Medien mbH
Schnorrstraße 76 | 01069 Dresden
Telefon +49 351 46766-0 | Telefax +49 351 46766-66
[EMAIL PROTECTED] | www.webit.de
 
Amtsgericht Dresden | HRB 15422
GF Sven Haubold, Hagen Malessa
_______________________________________________
Ferret-talk mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ferret-talk

Reply via email to