I''m pulling my hair out. And I don''t have that much to start with. If anyone can give me any ideas or pointers, I''d REALLY appreciate it. My rails app is intermittently having problems finding records of 2 of my models. I''m on Rails 1.1.6, ruby 1.8.5, Apache 2.0.52 and Postgres 8.1.4 on Redhat Linux hosted at Rimu. 1) I sometimes get "Couldn''t find Address with ID=4". This problem has happened in a couple different places in my code, where I''m finding Addresses. It *usually* happens on the same address record (there are 2 that it has trouble finding more often than others). I can''t find anything odd about those addresses. My Address model is pretty straightforward: class Address < ActiveRecord::Base validates_numericality_of :zip, :only_integer => true validates_presence_of :street_1, :city, :state, :zip belongs_to :user has_many :availabilities # Plus a few methods, but no callbacks. end 2) In another case, it can''t find records of my Zipcode model. I *think* I eliminated the problem in one spot by adding logging statements -- how strange is that? This code caused the error pretty consistently: pickup_address = Address.find(item.pickup_location) item_zip = Zipcode.find_by_zipcode(pickup_address.zip) #item_zip ended up being nil sometimes This somehow caused the error to stop happening in this part of the code at least. Note the added log statements. pickup_address = Address.find(item.pickup_location) logger.error("Found pickup_address: #{pickup_address.id}") item_zip = Zipcode.find_by_zipcode(pickup_address.zip) logger.error("item_zip: #{item_zip}") Any ideas?? Ever seen a similar problem? - Ryan -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Well, still haven''t figured out the problem, but I think I found a way to workaround it. In the main place in my code where it can''t find Address objects of Items, I used a begin/rescue that retries a few times. I see in the logs that it is still happening, but it finds the records successfully on retry. Would still love to know what''s going on, though. class Item < ActiveRecord::Base def pickup_address retries = 0 begin retries += 1 address = Address.find(pickup_location) rescue logger.error("ERROR in item.pickup_address ... retry # #{retries}") retry unless retries > 5 end end end -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I seem to remember this from a very long time ago. I believe that what''s happening is that in this line pickup_address = Address.find(item.pickup_location) item.pickup_location is nil. and nil.id == 4 If you change it to pickup_address = Address.find( :first, item.pickup_location ) Out of curiosity, what is item.pickup_location? Is it an address? If it is, just use pickup_address = item.pickup_location anyway. Hopefully that''s on the right track. On 1/18/07, Ryan C. <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > > Well, still haven''t figured out the problem, but I think I found a way > to workaround it. In the main place in my code where it can''t find > Address objects of Items, I used a begin/rescue that retries a few > times. I see in the logs that it is still happening, but it finds the > records successfully on retry. Would still love to know what''s going > on, though. > > class Item < ActiveRecord::Base > def pickup_address > retries = 0 > begin > retries += 1 > address = Address.find(pickup_location) > rescue > logger.error("ERROR in item.pickup_address ... retry # > #{retries}") > retry unless retries > 5 > end > end > end > > -- > Posted via http://www.ruby-forum.com/. > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Hi Daniel, thanks for the response. None of my Items have a missing pickup_address (it just happens to error on address #4 a lot, but also #5 and #26.) :-)>>Out of curiosity, what is item.pickup_location? Is it an address?item.pickup_location is an address.id. This was my first Rails app and I when I started writing it, I never set up has_many / belongs_to relationship between Item and Address. Thought about trying that here to see if it would fix things, but I really wanted to figure out the root problem to what I''m seeing. It''s really puzzling me! I''ve combed the forum archives but haven''t seen anything similar. -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Isak Hansen
2007-Jan-18 09:31 UTC
Re: Intermittent problem finding records - ever seen this?
On 1/18/07, Ryan C. <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > Hi Daniel, thanks for the response. None of my Items have a missing > pickup_address (it just happens to error on address #4 a lot, but also > #5 and #26.) :-) > > >>Out of curiosity, what is item.pickup_location? Is it an address? > > item.pickup_location is an address.id. > This was my first Rails app and I when I started writing it, I never set > up has_many / belongs_to relationship between Item and Address. Thought > about trying that here to see if it would fix things, but I really > wanted to figure out the root problem to what I''m seeing. It''s really > puzzling me! > > I''ve combed the forum archives but haven''t seen anything similar. >Hmm.. I''m guessing: #1 -- There''s a bug in your app. Dig out the query from an exception trace or your logs, ensure sure it makes sense and returns what you expect when run from psql. #2 -- Hardware issues Likely to cause intermittent errors. Should be plenty of resources for diagnosing this sort of thing on google, I think. Perhaps you could write something automated that repeatedly dumps the db (or a copy if you can''t take it offline), then compress and finally md5sum the output. Try reinstalling/upgrading pg if the hash changes while your data doesn''t, then talk to the hosting co when there are still issues. #3 -- Something weird in your rails/ruby/ruby<->postgres driver/postgres install or configuration. Ouch. No idea.. Good luck, Isak> -- > Posted via http://www.ruby-forum.com/. > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---