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 @@ -89,7 +89,8 @@ class OperationFailure < Error
89
89
# @since 2.1.1
90
90
# @deprecated
91
91
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 ) }
93
94
end
94
95
95
96
# Whether the error is a retryable error according to the modern retryable
@@ -102,19 +103,18 @@ def retryable?
102
103
#
103
104
# @since 2.4.2
104
105
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 ) }
107
108
end
108
109
109
- def write_retryable_code?
110
+ private def write_retryable_code?
110
111
if code
111
112
WRITE_RETRY_ERRORS . any? { |e | e [ :code ] == code }
112
113
else
113
114
# return false rather than nil
114
115
false
115
116
end
116
117
end
117
- private :write_retryable_code?
118
118
119
119
# Error codes and code names that should result in a failing getMore
120
120
# command on a change stream NOT being resumed.
You can’t perform that action at this time.
0 commit comments