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 = {})
278
278
} ) . execute ( next_primary ( nil , session ) , client : client )
279
279
end
280
280
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
283
287
end
284
288
285
289
# Find documents in the collection.
Original file line number Diff line number Diff line change @@ -97,7 +97,8 @@ class OperationFailure < Error
97
97
# @since 2.1.1
98
98
# @deprecated
99
99
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 ) }
101
102
end
102
103
103
104
# Whether the error is a retryable error according to the modern retryable
@@ -110,19 +111,18 @@ def retryable?
110
111
#
111
112
# @since 2.4.2
112
113
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 ) }
115
116
end
116
117
117
- def write_retryable_code?
118
+ private def write_retryable_code?
118
119
if code
119
120
WRITE_RETRY_ERRORS . any? { |e | e [ :code ] == code }
120
121
else
121
122
# return false rather than nil
122
123
false
123
124
end
124
125
end
125
- private :write_retryable_code?
126
126
127
127
# Error codes and code names that should result in a failing getMore
128
128
# command on a change stream NOT being resumed.
You can’t perform that action at this time.
0 commit comments