File tree Expand file tree Collapse file tree 2 files changed +2
-4
lines changed Expand file tree Collapse file tree 2 files changed +2
-4
lines changed Original file line number Diff line number Diff line change @@ -23,13 +23,10 @@ def initialize(model_class, options)
23
23
:dependent => :nullify , # or :destroy or :delete_all -- see the README
24
24
:name_column => 'name' ,
25
25
:with_advisory_lock => true ,
26
- :advisory_lock_timeout_seconds => nil ,
26
+ :advisory_lock_timeout_seconds => 5 ,
27
27
:numeric_order => false
28
28
} . merge ( options )
29
29
raise ArgumentError , "name_column can't be 'path'" if options [ :name_column ] == 'path'
30
- if !options [ :with_advisory_lock ] && options [ :advisory_lock_timeout_seconds ] . present?
31
- raise ArgumentError , "advisory_lock_timeout_seconds cannot be provided when advisory lock is disabled"
32
- end
33
30
if order_is_numeric?
34
31
extend NumericOrderSupport . adapter_for_connection ( connection )
35
32
end
Original file line number Diff line number Diff line change @@ -123,6 +123,7 @@ def work
123
123
it 'fails to deadlock while simultaneously deleting items from the same hierarchy' do
124
124
target = User . find_or_create_by_path ( ( 1 ..200 ) . to_a . map { |ea | ea . to_s } )
125
125
emails = target . self_and_ancestors . to_a . map ( &:email ) . shuffle
126
+ allow ( User ) . to receive ( :with_advisory_lock! ) . with ( anything , timeout_seconds : nil ) { |_lock_name , &block | block . call }
126
127
Parallel . map ( emails , :in_threads => max_threads ) do |email |
127
128
ActiveRecord ::Base . connection_pool . with_connection do
128
129
User . transaction do
You can’t perform that action at this time.
0 commit comments