Hi all,

Ive been getting this error on one particular query repeatedly for the
past few days.

ActiveRecord::StatementInvalid: Mysql::Error: Lock wait timeout
exceeded; try restarting transaction: UPDATE `posts` SET `updated_at`
= '2010-03-17 05:35:00', `view_count` = 54 WHERE `id` = 158

Googling around, I found that this is basically because the
transaction times out after waiting for the time period thats defined
in the InnoDB settings. I also found that acts_as_ferret could cause
this while it locks down the row in question for indexing purposes.
However, I dont have any such background processes running that might
lock down rows in mass like this.

Is there some technique for pinpointing a process thats locking down
the rows in question? I found a plugin called deadlock-retry (http://
github.com/rails/deadlock_retry/) by Jamis Buck. But im not sure if
this will solve the problem at all. Besides, since this error is
happening only in production, im reluctant to deploy the plugin to
production and waiting to see if it does anything at all.

Anyone got any pointers on this?

Thanks!

-- 
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-t...@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to