From 997a62198c70c85f229bb05a4c1b63f496531cbd Mon Sep 17 00:00:00 2001 From: Chris Hanks Date: Thu, 9 Jan 2014 23:21:41 +0000 Subject: Roll back open transactions when the running thread is killed. --- .../lib/active_record/connection_adapters/abstract/transaction.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'activerecord/lib') diff --git a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb index 90be835d8a..08b219cdd8 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/transaction.rb @@ -191,7 +191,11 @@ module ActiveRecord raise ensure begin - commit_transaction unless error + if Thread.current.status == 'aborting' + rollback_transaction + elsif !error + commit_transaction + end rescue Exception transaction.rollback unless transaction.state.completed? raise -- cgit v1.2.3