stack level too deep

def password=(pwd)   @password = pwd   return if pwd.blank?   create_new_salt   #self.hashed_password = Person.encrypted_password(self.password, self.salt)   self.password = Person.encrypted_password(self.password, self.salt) end

This method is calling itself on the last line. Right before the final "end." It will continue to do this until it runs out of stack space and your program crashes.