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 @@ -89,7 +89,8 @@ class OperationFailure < Error
8989 # @since 2.1.1
9090 # @deprecated
9191 def retryable?
92- write_retryable? || RETRY_MESSAGES . any? { |m | message . include? ( m ) }
92+ write_retryable? ||
93+ code . nil? && RETRY_MESSAGES . any? { |m | message . include? ( m ) }
9394 end
9495
9596 # Whether the error is a retryable error according to the modern retryable
@@ -102,19 +103,18 @@ def retryable?
102103 #
103104 # @since 2.4.2
104105 def write_retryable?
105- WRITE_RETRY_MESSAGES . any? { | m | message . include? ( m ) } ||
106- write_retryable_code?
106+ write_retryable_code? ||
107+ code . nil? && WRITE_RETRY_MESSAGES . any? { | m | message . include? ( m ) }
107108 end
108109
109- def write_retryable_code?
110+ private def write_retryable_code?
110111 if code
111112 WRITE_RETRY_ERRORS . any? { |e | e [ :code ] == code }
112113 else
113114 # return false rather than nil
114115 false
115116 end
116117 end
117- private :write_retryable_code?
118118
119119 # Error codes and code names that should result in a failing getMore
120120 # command on a change stream NOT being resumed.
You can’t perform that action at this time.
0 commit comments