diff options
author | Ariejan de Vroom <ariejan@ariejan.net> | 2012-03-27 15:17:23 +0200 |
---|---|---|
committer | Ariejan de Vroom <ariejan@ariejan.net> | 2012-03-27 15:17:23 +0200 |
commit | 3b4e7b315b598d10cf4c1a19d4a23b9da5ce12bf (patch) | |
tree | 29fe38a66cca9ef3d50d86ee117438513209f4f3 | |
parent | 1647f46b1f3e442c94dd58864b564e137f7fa04d (diff) | |
download | gitlab-ce-3b4e7b315b598d10cf4c1a19d4a23b9da5ce12bf.tar.gz |
Added fix for "MySQL has gone away" errors with Resque workers.
-rw-r--r-- | config/initializers/connection_fix.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/config/initializers/connection_fix.rb b/config/initializers/connection_fix.rb new file mode 100644 index 00000000000..e77253afc4e --- /dev/null +++ b/config/initializers/connection_fix.rb @@ -0,0 +1,17 @@ +module ActiveRecord::ConnectionAdapters + class MysqlAdapter + alias_method :execute_without_retry, :execute + + def execute(*args) + execute_without_retry(*args) + rescue ActiveRecord::StatementInvalid => e + if e.message =~ /server has gone away/i + warn "Server timed out, retrying" + reconnect! + retry + else + raise e + end + end + end +end |