From ac76d551ce1dbb829d521a57a4000b8ce49418f2 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Thu, 4 Aug 2016 14:39:09 -0700 Subject: The problem isn't the detection but the deadlock itself --- .../lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 2 +- .../lib/active_record/connection_adapters/postgresql_adapter.rb | 6 +++--- activerecord/lib/active_record/errors.rb | 4 ++-- activerecord/test/cases/adapters/mysql2/transaction_test.rb | 4 ++-- activerecord/test/cases/adapters/postgresql/transaction_test.rb | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) (limited to 'activerecord') diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index acc21866f1..5e9705e02f 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -753,7 +753,7 @@ module ActiveRecord when ER_DATA_TOO_LONG ValueTooLong.new(message) when ER_LOCK_DEADLOCK - DeadlockDetected.new(message) + Deadlocked.new(message) else super end diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index e213c991c8..d8a50ca96a 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -407,7 +407,7 @@ module ActiveRecord FOREIGN_KEY_VIOLATION = "23503" UNIQUE_VIOLATION = "23505" SERIALIZATION_FAILURE = "40001" - DEADLOCK_DETECTED = "40P01" + DEADLOCKED = "40P01" def translate_exception(exception, message) return exception unless exception.respond_to?(:result) @@ -421,8 +421,8 @@ module ActiveRecord ValueTooLong.new(message) when SERIALIZATION_FAILURE SerializationFailure.new(message) - when DEADLOCK_DETECTED - DeadlockDetected.new(message) + when DEADLOCKED + Deadlocked.new(message) else super end diff --git a/activerecord/lib/active_record/errors.rb b/activerecord/lib/active_record/errors.rb index 3f75ce4099..03e6e1eee3 100644 --- a/activerecord/lib/active_record/errors.rb +++ b/activerecord/lib/active_record/errors.rb @@ -300,9 +300,9 @@ module ActiveRecord class SerializationFailure < TransactionRollbackError end - # DeadlockDetected will be raised when a transaction is rolled + # Deadlocked will be raised when a transaction is rolled # back by the database when a deadlock is encountered. - class DeadlockDetected < TransactionRollbackError + class Deadlocked < TransactionRollbackError end # IrreversibleOrderError is raised when a relation's order is too complex for diff --git a/activerecord/test/cases/adapters/mysql2/transaction_test.rb b/activerecord/test/cases/adapters/mysql2/transaction_test.rb index 1a88b9cbca..5d8765d63a 100644 --- a/activerecord/test/cases/adapters/mysql2/transaction_test.rb +++ b/activerecord/test/cases/adapters/mysql2/transaction_test.rb @@ -27,8 +27,8 @@ module ActiveRecord @connection.drop_table 'samples', if_exists: true end - test "raises DeadlockDetected when a deadlock is encountered" do - assert_raises(ActiveRecord::DeadlockDetected) do + test "raises Deadlocked when a deadlock is encountered" do + assert_raises(ActiveRecord::Deadlocked) do s1 = Sample.create value: 1 s2 = Sample.create value: 2 diff --git a/activerecord/test/cases/adapters/postgresql/transaction_test.rb b/activerecord/test/cases/adapters/postgresql/transaction_test.rb index 87d1fffe19..8dea92c785 100644 --- a/activerecord/test/cases/adapters/postgresql/transaction_test.rb +++ b/activerecord/test/cases/adapters/postgresql/transaction_test.rb @@ -58,9 +58,9 @@ module ActiveRecord end end - test "raises DeadlockDetected when a deadlock is encountered" do + test "raises Deadlocked when a deadlock is encountered" do with_warning_suppression do - assert_raises(ActiveRecord::DeadlockDetected) do + assert_raises(ActiveRecord::Deadlocked) do s1 = Sample.create value: 1 s2 = Sample.create value: 2 -- cgit v1.2.3