[Nitro] FastCGI is broken because of Og.thread_safe not having an Og.manager.store

Bryan Soto bryan.a.soto at gmail.com
Wed Feb 1 14:26:58 EST 2006

dev-nitro/og/lib $ grep -R get_store *
og/manager.rb:  def get_store
og/manager.rb:  alias_method :store, :get_store
og/manager.rb:  alias_method :conn, :get_store

dev-nitro/og/lib $ grep -R store * | more
<many lines snipped>
og/entity.rb:    self.class.ogmanager.store.save(self, options)
og/entity.rb:    self.class.ogmanager.store.force_save(self, options)
og/entity.rb:    self.class.ogmanager.store.insert(self)
og/entity.rb:    self.class.ogmanager.store.update(self, options)
og/entity.rb:    self.class.ogmanager.store.update(self, :only =>
og/entity.rb:    self.class.ogmanager.store.update_by_sql(self, set)
og/entity.rb:  # Reload this entity instance from the store.
og/entity.rb:    self.class.ogmanager.store.reload(self, self.pk)
og/entity.rb:  # Delete this entity instance from the store.
og/entity.rb:    self.class.ogmanager.store.delete(self, self.class,
og/entity.rb:    self.class.ogmanager.store.transaction(&block)
og/entity.rb:    self.class.ogmanager.store.quote(obj)
og/entity.rb:      ogmanager.store.save(obj)
og/entity.rb:      ogmanager.store.save(obj)
og/entity.rb:      ogmanager.store.load(pk, self)
og/entity.rb:    # store.
og/entity.rb:      ogmanager.store.update_by_sql(self, set, options)
og/entity.rb:    # Unlike the lower level store.find method it accepts
og/entity.rb:      ogmanager.store.find(options)
og/entity.rb:      ogmanager.store.find_one(options)
og/entity.rb:      ogmanager.store.select(sql, self)
og/entity.rb:      ogmanager.store.select_one(sql, self)
og/entity.rb:      ogmanager.store.count(options)
og/entity.rb:      ogmanager.store.delete(obj_or_pk, self, cascade)
og/entity.rb:      ogmanager.store.delete_all(self)
og/entity.rb:      ogmanager.store.send :destroy, self
og/entity.rb:      ogmanager.store.escape(str)
og/entity.rb:      ogmanager.store.transaction(&block)
og/entity.rb:    # Return the store (connection) for this class.
og/entity.rb:    def ogstore
og/entity.rb:      ogmanager.store
og/entity.rb:    # on this managed class. The scope options are stored
og/entity.rb:        %|#{field_name} #{options.delete("#{name}_op".to_sym)
|| '='} #{ogmanager.store.quote(value)}|
og/entity.rb:      return ogmanager.store.send(finder, options)
<more snipped>

dev-nitro/og/lib $ grep -R put_store *
og/manager.rb:  def put_store
og/manager.rb:    store.enchant(klass, self); put_store
<no further output>

It seems some more calls to #put_store are necessary or that #get_store
should create more connections rather than return nil. In the meantime,
Og.thread_safe should probably default to false.


On 1/27/06, Rob Pitt <rob at motionpath.com> wrote:
> There was no error connecting to the database (I used set_trace_proc to
> log exceptions while starting it up a couple of days ago). There were no
> files being reloaded. I see what you mean about popping from the array,
> I imagine it must be that for some reason other than their being a
> connection error none of the connections are ever opened. I will
> investigate this later... thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://rubyforge.org/pipermail/nitro-general/attachments/20060201/5039404c/attachment.html 

More information about the Nitro-general mailing list