summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAriejan de Vroom <ariejan@ariejan.net>2012-03-27 15:17:23 +0200
committerAriejan de Vroom <ariejan@ariejan.net>2012-03-27 15:17:23 +0200
commit3b4e7b315b598d10cf4c1a19d4a23b9da5ce12bf (patch)
tree29fe38a66cca9ef3d50d86ee117438513209f4f3
parent1647f46b1f3e442c94dd58864b564e137f7fa04d (diff)
downloadgitlab-ce-3b4e7b315b598d10cf4c1a19d4a23b9da5ce12bf.tar.gz
Added fix for "MySQL has gone away" errors with Resque workers.
-rw-r--r--config/initializers/connection_fix.rb17
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