Skip to content

Commit 348084f

Browse files
committed
support rails 8.2
1 parent 28b8c98 commit 348084f

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

lib/with_advisory_lock/postgresql_advisory.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ def try_advisory_lock(lock_keys, lock_name:, shared:, transaction:, timeout_seco
1919
advisory_try_lock_function(transaction, shared)
2020
end
2121
execute_advisory(function, lock_keys, lock_name, blocking: blocking)
22+
rescue ActiveRecord::Deadlocked
23+
# Rails 8.2+ raises ActiveRecord::Deadlocked directly for PostgreSQL deadlocks
24+
# When using blocking locks, treat deadlocks as lock acquisition failure
25+
return false if blocking
26+
27+
raise
2228
rescue ActiveRecord::StatementInvalid => e
2329
# PostgreSQL deadlock detection raises PG::TRDeadlockDetected (SQLSTATE 40P01)
2430
# When using blocking locks, treat deadlocks as lock acquisition failure

0 commit comments

Comments
 (0)