diff options
Diffstat (limited to 'activerecord/lib/active_record/vendor')
-rw-r--r-- | activerecord/lib/active_record/vendor/mysql.rb | 10 |
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 |