File tree Expand file tree Collapse file tree 2 files changed +11
-7
lines changed Expand file tree Collapse file tree 2 files changed +11
-7
lines changed Original file line number Diff line number Diff line change @@ -278,8 +278,12 @@ def drop(opts = {})
278278 } ) . execute ( next_primary ( nil , session ) , client : client )
279279 end
280280 rescue Error ::OperationFailure => ex
281- raise ex unless ex . message =~ /ns not found/
282- false
281+ # NamespaceNotFound
282+ if ex . code == 26 || ex . code . nil? && ex . message =~ /ns not found/
283+ false
284+ else
285+ raise
286+ end
283287 end
284288
285289 # Find documents in the collection.
Original file line number Diff line number Diff line change @@ -97,7 +97,8 @@ class OperationFailure < Error
9797 # @since 2.1.1
9898 # @deprecated
9999 def retryable?
100- write_retryable? || RETRY_MESSAGES . any? { |m | message . include? ( m ) }
100+ write_retryable? ||
101+ code . nil? && RETRY_MESSAGES . any? { |m | message . include? ( m ) }
101102 end
102103
103104 # Whether the error is a retryable error according to the modern retryable
@@ -110,19 +111,18 @@ def retryable?
110111 #
111112 # @since 2.4.2
112113 def write_retryable?
113- WRITE_RETRY_MESSAGES . any? { | m | message . include? ( m ) } ||
114- write_retryable_code?
114+ write_retryable_code? ||
115+ code . nil? && WRITE_RETRY_MESSAGES . any? { | m | message . include? ( m ) }
115116 end
116117
117- def write_retryable_code?
118+ private def write_retryable_code?
118119 if code
119120 WRITE_RETRY_ERRORS . any? { |e | e [ :code ] == code }
120121 else
121122 # return false rather than nil
122123 false
123124 end
124125 end
125- private :write_retryable_code?
126126
127127 # Error codes and code names that should result in a failing getMore
128128 # command on a change stream NOT being resumed.
You can’t perform that action at this time.
0 commit comments