aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/vendor/mysql.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/vendor/mysql.rb')
-rw-r--r--activerecord/lib/active_record/vendor/mysql.rb10
1 files changed, 8 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/vendor/mysql.rb b/activerecord/lib/active_record/vendor/mysql.rb
index 0d8cc2efd8..58ebed7d4f 100644
--- a/activerecord/lib/active_record/vendor/mysql.rb
+++ b/activerecord/lib/active_record/vendor/mysql.rb
@@ -1173,8 +1173,14 @@ class << Mysql
def finalizer(net)
proc {
- net.clear
- net.write Mysql::COM_QUIT.chr
+ begin
+ net.clear
+ net.write Mysql::COM_QUIT.chr
+ net.close
+ rescue Error => error
+ # Swallow lost connection errors if connection is already closed.
+ raise unless error.errno == Error::CR_SERVER_LOST
+ end
}
end