Has anyone seen problems with deadlockretry gem ?

The problem seems to be more specifically to Rails ActiveRecord.

When I raised an error (to mimic a deadlock error) in after_create
within a transaction, the instance model is modified and thinks that
it is saved successfully and not a new record anymore.

Here's the gist - https://gist.github.com/1637279

class User < ActiveRecord::Base
  after_create :deadlock_on_first_try

  def deadlock_on_first_try
    raise ActiveRecord::StatementInvalid.new("Lock wait timeout
exceeded") if @deadlocked.nil?
  ensure
    @deadlocked = true
  end
end

# In the console...
>@user = User.new
>@user.name = "foo"
>User.transaction do @user.save end
ActiveRecord::StatementInvalid: Lock wait timeout exceeded
>@user.new_record?
false
>@user.id
1
>User.find(1)
ActiveRecord::RecordNotFound: Couldn't find User with id=1

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
or Rails Oceania" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rails-oceania?hl=en.

Reply via email to