[Backgroundrb-devel] [SOLVED] Re: BgDRb initializes my models twice?

Michael Siebert siebertm85 at googlemail.com
Wed Feb 27 08:29:26 EST 2008


I got it. MasterProxy#load_rails_models loaded all models, which seems  
to be wrong. for our application, i commented out the call to  
load_rails_models and everything worked fine.

but we should ask ourselves if it is nesseccary to load the rails  
models for master_proxy. it doesnt use it and in the worker processes,  
rails autoloader could load them as well.

greetings,
micha
Am 27.02.2008 um 14:11 schrieb Michael Siebert:

> Hello there,
>
> I've stumbled into a phenomenon: my models get loaded twice (or  
> more). Best thing would be describing my setup:
>
> I have a Folder model using acts_as_taggable (from  
> acts_as_taggable_on_steroids) in the acts_as_taggable class method  
> being calledon initialization, it does the following:
>
>> alias_method_chain :reload, :tag_list
>
>
> Now, when something (namely better_nested_set) calls self.reload,  
> reload_with_tag_list is called which in turn calls  
> reload_without_tag_list (which is the original one). This is how it  
> should work and how it works in rails context.
>
> when i now start backgroundrb and self.reload is called, i get:
>
>> #<SystemStackError: stack level too deep>
>> /Users/micha/rails/dmt/trunk/vendor/plugins/ 
>> acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:192:in  
>> `reload_without_tag_list'
>> /Users/micha/rails/dmt/trunk/vendor/plugins/ 
>> acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:192:in `reload'
>> /Users/micha/rails/dmt/trunk/vendor/plugins/betternestedset/lib/ 
>> better_nested_set.rb:430:in `move_to'
>> /Library/Ruby/Gems/1.8/gems/activerecord-2.0.2/lib/active_record/ 
>> connection_adapters/abstract/database_statements.rb:66:in  
>> `transaction'
>> /Library/Ruby/Gems/1.8/gems/activerecord-2.0.2/lib/active_record/ 
>> transactions.rb:80:in `transaction'
>> /Library/Ruby/Gems/1.8/gems/activerecord-2.0.2/lib/active_record/ 
>> transactions.rb:100:in `transaction'
>> /Users/micha/rails/dmt/trunk/vendor/plugins/betternestedset/lib/ 
>> better_nested_set.rb:429:in `move_to'
>> /Users/micha/rails/dmt/trunk/vendor/plugins/betternestedset/lib/ 
>> better_nested_set.rb:421:in `move_to_child_of'
>> /Users/micha/rails/dmt/trunk/lib/workers/processing_queue_worker.rb: 
>> 194:in `process_convert_pdf'
>> /Library/Ruby/Gems/1.8/gems/activerecord-2.0.2/lib/active_record/ 
>> connection_adapters/abstract/database_statements.rb:66:in  
>> `transaction'
>> /Library/Ruby/Gems/1.8/gems/activerecord-2.0.2/lib/active_record/ 
>> transactions.rb:80:in `transaction'
>> /Users/micha/rails/dmt/trunk/lib/workers/processing_queue_worker.rb: 
>> 191:in `process_convert_pdf'
>
> with ruby-debug, i can see that acts_as_taggable is called more then  
> once, doing the alias_method_chain more than once, too, so that  
> reload_with_tag_list calls reload_with_taglist which calls  
> reload_with_tag_list. if you don't understand that, try to sketch  
> it :)
>
> is this behaviour known, is it a bug or superman?
>
> greetings,
> Micha
>
> ---
> Siebert WD
> Michael Siebert
> Trappenweg 6, 15749 Mittenwalde, Deutschland
>

---
Siebert WD
Michael Siebert
Trappenweg 6, 15749 Mittenwalde, Deutschland



More information about the Backgroundrb-devel mailing list