mongo 2.17.3 → 2.18.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (622) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +21 -37
  4. data/lib/mongo/auth/base.rb +8 -1
  5. data/lib/mongo/auth.rb +12 -1
  6. data/lib/mongo/bulk_write/result.rb +10 -1
  7. data/lib/mongo/bulk_write/result_combiner.rb +2 -4
  8. data/lib/mongo/bulk_write.rb +108 -28
  9. data/lib/mongo/client.rb +114 -12
  10. data/lib/mongo/client_encryption.rb +30 -9
  11. data/lib/mongo/cluster/reapers/cursor_reaper.rb +11 -1
  12. data/lib/mongo/cluster.rb +20 -24
  13. data/lib/mongo/collection/helpers.rb +43 -0
  14. data/lib/mongo/collection/queryable_encryption.rb +122 -0
  15. data/lib/mongo/collection/view/aggregation.rb +19 -16
  16. data/lib/mongo/collection/view/change_stream.rb +56 -23
  17. data/lib/mongo/collection/view/explainable.rb +1 -1
  18. data/lib/mongo/collection/view/iterable.rb +2 -3
  19. data/lib/mongo/collection/view/map_reduce.rb +18 -9
  20. data/lib/mongo/collection/view/readable.rb +19 -23
  21. data/lib/mongo/collection/view/writable.rb +133 -40
  22. data/lib/mongo/collection.rb +108 -48
  23. data/lib/mongo/config/options.rb +62 -0
  24. data/lib/mongo/config/validators/option.rb +26 -0
  25. data/lib/mongo/config.rb +31 -0
  26. data/lib/mongo/crypt/auto_encrypter.rb +79 -6
  27. data/lib/mongo/crypt/binding.rb +395 -143
  28. data/lib/mongo/crypt/context.rb +5 -2
  29. data/lib/mongo/crypt/data_key_context.rb +7 -104
  30. data/lib/mongo/crypt/encryption_io.rb +28 -60
  31. data/lib/mongo/crypt/explicit_encrypter.rb +27 -25
  32. data/lib/mongo/crypt/explicit_encryption_context.rb +31 -3
  33. data/lib/mongo/crypt/handle.rb +102 -79
  34. data/lib/mongo/crypt/hooks.rb +25 -2
  35. data/lib/mongo/crypt/kms/aws.rb +128 -0
  36. data/lib/mongo/crypt/kms/azure.rb +136 -0
  37. data/lib/mongo/crypt/kms/credentials.rb +81 -0
  38. data/lib/mongo/crypt/kms/gcp.rb +182 -0
  39. data/lib/mongo/crypt/kms/kmip.rb +110 -0
  40. data/lib/mongo/crypt/kms/local.rb +74 -0
  41. data/lib/mongo/crypt/kms/master_key_document.rb +65 -0
  42. data/lib/mongo/crypt/kms.rb +117 -0
  43. data/lib/mongo/crypt.rb +1 -0
  44. data/lib/mongo/cursor/kill_spec.rb +27 -6
  45. data/lib/mongo/cursor.rb +21 -16
  46. data/lib/mongo/database/view.rb +6 -3
  47. data/lib/mongo/database.rb +73 -12
  48. data/lib/mongo/dbref.rb +1 -105
  49. data/lib/mongo/error/bulk_write_error.rb +31 -4
  50. data/lib/mongo/error/invalid_config_option.rb +20 -0
  51. data/lib/mongo/error/invalid_replacement_document.rb +27 -9
  52. data/lib/mongo/error/invalid_update_document.rb +27 -7
  53. data/lib/mongo/error/labelable.rb +72 -0
  54. data/lib/mongo/error/missing_connection.rb +25 -0
  55. data/lib/mongo/error/notable.rb +7 -0
  56. data/lib/mongo/error/operation_failure.rb +34 -86
  57. data/lib/mongo/error/read_write_retryable.rb +108 -0
  58. data/lib/mongo/{operation/kill_cursors/legacy.rb → error/session_not_materialized.rb} +7 -19
  59. data/lib/mongo/error.rb +5 -37
  60. data/lib/mongo/index/view.rb +22 -7
  61. data/lib/mongo/monitoring/event/command_failed.rb +8 -2
  62. data/lib/mongo/monitoring/event/command_started.rb +1 -1
  63. data/lib/mongo/monitoring/event/command_succeeded.rb +9 -2
  64. data/lib/mongo/monitoring/publishable.rb +9 -5
  65. data/lib/mongo/operation/collections_info/result.rb +5 -2
  66. data/lib/mongo/operation/command/op_msg.rb +6 -0
  67. data/lib/mongo/operation/context.rb +24 -6
  68. data/lib/mongo/operation/count/op_msg.rb +4 -1
  69. data/lib/mongo/operation/create/op_msg.rb +16 -1
  70. data/lib/mongo/operation/create_index/op_msg.rb +2 -1
  71. data/lib/mongo/operation/delete/op_msg.rb +1 -0
  72. data/lib/mongo/operation/delete.rb +0 -1
  73. data/lib/mongo/operation/drop_index/op_msg.rb +5 -1
  74. data/lib/mongo/operation/get_more/command_builder.rb +5 -1
  75. data/lib/mongo/operation/insert/bulk_result.rb +5 -1
  76. data/lib/mongo/operation/insert/command.rb +0 -4
  77. data/lib/mongo/operation/insert/op_msg.rb +6 -3
  78. data/lib/mongo/operation/insert/result.rb +6 -3
  79. data/lib/mongo/operation/insert.rb +0 -1
  80. data/lib/mongo/operation/kill_cursors.rb +0 -1
  81. data/lib/mongo/operation/list_collections/op_msg.rb +4 -1
  82. data/lib/mongo/operation/map_reduce/result.rb +16 -0
  83. data/lib/mongo/operation/result.rb +21 -5
  84. data/lib/mongo/operation/shared/executable.rb +21 -6
  85. data/lib/mongo/operation/shared/polymorphic_operation.rb +15 -3
  86. data/lib/mongo/operation/shared/response_handling.rb +6 -5
  87. data/lib/mongo/operation/shared/sessions_supported.rb +3 -7
  88. data/lib/mongo/operation/shared/write.rb +18 -12
  89. data/lib/mongo/operation/update/op_msg.rb +2 -1
  90. data/lib/mongo/operation/update.rb +0 -1
  91. data/lib/mongo/protocol/caching_hash.rb +69 -0
  92. data/lib/mongo/protocol/msg.rb +37 -1
  93. data/lib/mongo/protocol.rb +1 -0
  94. data/lib/mongo/query_cache.rb +15 -0
  95. data/lib/mongo/retryable.rb +78 -30
  96. data/lib/mongo/server/connection.rb +33 -0
  97. data/lib/mongo/server/connection_base.rb +2 -0
  98. data/lib/mongo/server/connection_common.rb +4 -1
  99. data/lib/mongo/server/connection_pool.rb +69 -42
  100. data/lib/mongo/server/description/features.rb +3 -1
  101. data/lib/mongo/server/description.rb +7 -2
  102. data/lib/mongo/server/monitor/connection.rb +5 -10
  103. data/lib/mongo/server/monitor.rb +21 -13
  104. data/lib/mongo/server/push_monitor.rb +9 -3
  105. data/lib/mongo/server.rb +9 -5
  106. data/lib/mongo/session/session_pool.rb +8 -0
  107. data/lib/mongo/session.rb +111 -35
  108. data/lib/mongo/socket/ocsp_verifier.rb +4 -5
  109. data/lib/mongo/socket/tcp.rb +3 -0
  110. data/lib/mongo/srv/resolver.rb +24 -3
  111. data/lib/mongo/uri/options_mapper.rb +2 -0
  112. data/lib/mongo/uri/srv_protocol.rb +1 -1
  113. data/lib/mongo/uri.rb +20 -0
  114. data/lib/mongo/version.rb +1 -1
  115. data/lib/mongo.rb +20 -0
  116. data/mongo.gemspec +10 -4
  117. data/spec/README.md +5 -5
  118. data/spec/integration/aws_lambda_examples_spec.rb +68 -0
  119. data/spec/integration/bulk_write_error_message_spec.rb +32 -0
  120. data/spec/integration/bulk_write_spec.rb +0 -16
  121. data/spec/integration/change_stream_spec.rb +6 -5
  122. data/spec/integration/client_construction_spec.rb +1 -1
  123. data/spec/integration/client_side_encryption/auto_encryption_bulk_writes_spec.rb +9 -9
  124. data/spec/integration/client_side_encryption/auto_encryption_command_monitoring_spec.rb +18 -19
  125. data/spec/integration/client_side_encryption/auto_encryption_mongocryptd_spawn_spec.rb +0 -1
  126. data/spec/integration/client_side_encryption/auto_encryption_reconnect_spec.rb +31 -0
  127. data/spec/integration/client_side_encryption/auto_encryption_spec.rb +108 -1
  128. data/spec/integration/client_side_encryption/bson_size_limit_spec.rb +2 -2
  129. data/spec/integration/client_side_encryption/bypass_mongocryptd_spawn_spec.rb +2 -2
  130. data/spec/integration/client_side_encryption/client_close_spec.rb +1 -1
  131. data/spec/integration/client_side_encryption/corpus_spec.rb +64 -35
  132. data/spec/integration/client_side_encryption/custom_endpoint_spec.rb +39 -42
  133. data/spec/integration/client_side_encryption/data_key_spec.rb +97 -7
  134. data/spec/integration/client_side_encryption/explicit_encryption_spec.rb +59 -0
  135. data/spec/integration/client_side_encryption/explicit_queryable_encryption_spec.rb +147 -0
  136. data/spec/integration/client_side_encryption/external_key_vault_spec.rb +6 -6
  137. data/spec/integration/client_side_encryption/kms_tls_options_spec.rb +394 -0
  138. data/spec/integration/client_side_encryption/kms_tls_spec.rb +92 -0
  139. data/spec/integration/client_side_encryption/queryable_encryption_examples_spec.rb +111 -0
  140. data/spec/integration/client_side_encryption/views_spec.rb +1 -1
  141. data/spec/integration/client_update_spec.rb +2 -2
  142. data/spec/integration/crud_spec.rb +12 -0
  143. data/spec/integration/cursor_pinning_spec.rb +3 -3
  144. data/spec/integration/fork_reconnect_spec.rb +15 -8
  145. data/spec/integration/grid_fs_bucket_spec.rb +3 -3
  146. data/spec/integration/ocsp_verifier_spec.rb +1 -0
  147. data/spec/integration/query_cache_spec.rb +34 -30
  148. data/spec/integration/retryable_writes/retryable_writes_36_and_older_spec.rb +1 -1
  149. data/spec/integration/sdam_events_spec.rb +0 -40
  150. data/spec/integration/server_monitor_spec.rb +2 -1
  151. data/spec/integration/size_limit_spec.rb +4 -1
  152. data/spec/integration/snapshot_query_examples_spec.rb +127 -0
  153. data/spec/integration/srv_monitoring_spec.rb +37 -0
  154. data/spec/integration/step_down_spec.rb +20 -4
  155. data/spec/integration/transaction_pinning_spec.rb +2 -2
  156. data/spec/integration/versioned_api_examples_spec.rb +37 -31
  157. data/spec/lite_spec_helper.rb +14 -5
  158. data/spec/mongo/address/ipv6_spec.rb +7 -0
  159. data/spec/mongo/address_spec.rb +7 -0
  160. data/spec/mongo/auth/scram/conversation_spec.rb +23 -23
  161. data/spec/mongo/auth/scram256/conversation_spec.rb +20 -20
  162. data/spec/mongo/auth/scram_negotiation_spec.rb +1 -0
  163. data/spec/mongo/bulk_write/result_spec.rb +15 -1
  164. data/spec/mongo/bulk_write_spec.rb +128 -20
  165. data/spec/mongo/client_construction_spec.rb +141 -7
  166. data/spec/mongo/client_encryption_spec.rb +11 -11
  167. data/spec/mongo/client_spec.rb +297 -1
  168. data/spec/mongo/cluster/cursor_reaper_spec.rb +21 -3
  169. data/spec/mongo/cluster_spec.rb +0 -44
  170. data/spec/mongo/collection/view/aggregation_spec.rb +2 -2
  171. data/spec/mongo/collection/view/change_stream_spec.rb +2 -2
  172. data/spec/mongo/collection/view/readable_spec.rb +35 -56
  173. data/spec/mongo/collection/view/writable_spec.rb +144 -32
  174. data/spec/mongo/collection_crud_spec.rb +63 -13
  175. data/spec/mongo/config/options_spec.rb +75 -0
  176. data/spec/mongo/config_spec.rb +73 -0
  177. data/spec/mongo/crypt/auto_decryption_context_spec.rb +17 -1
  178. data/spec/mongo/crypt/auto_encrypter_spec.rb +106 -0
  179. data/spec/mongo/crypt/auto_encryption_context_spec.rb +17 -1
  180. data/spec/mongo/crypt/binding/context_spec.rb +99 -17
  181. data/spec/mongo/crypt/binding/mongocrypt_spec.rb +17 -46
  182. data/spec/mongo/crypt/binding/version_spec.rb +25 -0
  183. data/spec/mongo/crypt/binding_unloaded_spec.rb +14 -0
  184. data/spec/mongo/crypt/data_key_context_spec.rb +42 -114
  185. data/spec/mongo/crypt/encryption_io_spec.rb +2 -0
  186. data/spec/mongo/crypt/explicit_decryption_context_spec.rb +32 -1
  187. data/spec/mongo/crypt/explicit_encryption_context_spec.rb +89 -1
  188. data/spec/mongo/crypt/handle_spec.rb +47 -169
  189. data/spec/mongo/crypt/hooks_spec.rb +30 -0
  190. data/spec/mongo/crypt/kms/credentials_spec.rb +404 -0
  191. data/spec/mongo/crypt/kms_spec.rb +59 -0
  192. data/spec/mongo/cursor_spec.rb +37 -51
  193. data/spec/mongo/database_spec.rb +66 -1
  194. data/spec/mongo/error/operation_failure_heavy_spec.rb +49 -0
  195. data/spec/mongo/index/view_spec.rb +69 -0
  196. data/spec/mongo/operation/create/op_msg_spec.rb +286 -0
  197. data/spec/mongo/operation/delete/op_msg_spec.rb +13 -4
  198. data/spec/mongo/operation/delete_spec.rb +0 -30
  199. data/spec/mongo/operation/insert/op_msg_spec.rb +18 -10
  200. data/spec/mongo/operation/insert_spec.rb +0 -32
  201. data/spec/mongo/operation/result_spec.rb +20 -0
  202. data/spec/mongo/operation/update/op_msg_spec.rb +13 -4
  203. data/spec/mongo/operation/update_spec.rb +0 -29
  204. data/spec/mongo/protocol/caching_hash_spec.rb +82 -0
  205. data/spec/mongo/protocol/msg_spec.rb +41 -0
  206. data/spec/mongo/query_cache_spec.rb +1 -0
  207. data/spec/mongo/retryable_spec.rb +32 -3
  208. data/spec/mongo/server/connection_auth_spec.rb +3 -1
  209. data/spec/mongo/server/connection_common_spec.rb +13 -1
  210. data/spec/mongo/server/connection_pool_spec.rb +94 -49
  211. data/spec/mongo/server/connection_spec.rb +50 -159
  212. data/spec/mongo/server/description/features_spec.rb +24 -0
  213. data/spec/mongo/server/push_monitor_spec.rb +2 -8
  214. data/spec/mongo/session_spec.rb +26 -6
  215. data/spec/mongo/session_transaction_spec.rb +2 -1
  216. data/spec/mongo/socket/ssl_spec.rb +15 -4
  217. data/spec/mongo/uri/srv_protocol_spec.rb +101 -2
  218. data/spec/mongo/uri_spec.rb +25 -0
  219. data/spec/runners/connection_string.rb +8 -0
  220. data/spec/runners/crud/operation.rb +12 -3
  221. data/spec/runners/crud/requirement.rb +3 -3
  222. data/spec/runners/crud/spec.rb +5 -0
  223. data/spec/runners/crud/verifier.rb +6 -0
  224. data/spec/runners/transactions/test.rb +33 -14
  225. data/spec/runners/transactions.rb +9 -6
  226. data/spec/runners/unified/assertions.rb +59 -10
  227. data/spec/runners/unified/change_stream_operations.rb +9 -0
  228. data/spec/runners/unified/crud_operations.rb +50 -2
  229. data/spec/runners/unified/ddl_operations.rb +20 -0
  230. data/spec/runners/unified/error.rb +2 -1
  231. data/spec/runners/unified/support_operations.rb +5 -2
  232. data/spec/runners/unified/test.rb +19 -4
  233. data/spec/runners/unified.rb +9 -2
  234. data/spec/shared/lib/mrss/constraints.rb +10 -17
  235. data/spec/shared/lib/mrss/docker_runner.rb +21 -3
  236. data/spec/shared/lib/mrss/lite_constraints.rb +32 -1
  237. data/spec/shared/lib/mrss/session_registry.rb +69 -0
  238. data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
  239. data/spec/shared/share/Dockerfile.erb +56 -54
  240. data/spec/shared/shlib/config.sh +27 -0
  241. data/spec/shared/shlib/distro.sh +2 -1
  242. data/spec/shared/shlib/server.sh +46 -21
  243. data/spec/shared/shlib/set_env.sh +40 -5
  244. data/spec/spec_helper.rb +0 -1
  245. data/spec/spec_tests/crud_spec.rb +0 -10
  246. data/spec/spec_tests/data/change_streams_unified/change-streams-errors.yml +124 -0
  247. data/spec/spec_tests/data/change_streams_unified/change-streams-pre_and_post_images.yml +351 -0
  248. data/spec/spec_tests/data/change_streams_unified/change-streams-resume-allowlist.yml +1171 -0
  249. data/spec/spec_tests/data/change_streams_unified/change-streams-resume-errorLabels.yml +1068 -0
  250. data/spec/spec_tests/data/change_streams_unified/change-streams.yml +859 -4
  251. data/spec/spec_tests/data/client_side_encryption/aggregate.yml +3 -17
  252. data/spec/spec_tests/data/client_side_encryption/azureKMS.yml +46 -0
  253. data/spec/spec_tests/data/client_side_encryption/badQueries.yml +12 -2
  254. data/spec/spec_tests/data/client_side_encryption/basic.yml +3 -17
  255. data/spec/spec_tests/data/client_side_encryption/bulk.yml +1 -8
  256. data/spec/spec_tests/data/client_side_encryption/bypassAutoEncryption.yml +2 -2
  257. data/spec/spec_tests/data/client_side_encryption/count.yml +1 -8
  258. data/spec/spec_tests/data/client_side_encryption/countDocuments.yml +1 -8
  259. data/spec/spec_tests/data/client_side_encryption/delete.yml +2 -16
  260. data/spec/spec_tests/data/client_side_encryption/distinct.yml +1 -8
  261. data/spec/spec_tests/data/client_side_encryption/explain.yml +1 -8
  262. data/spec/spec_tests/data/client_side_encryption/find.yml +2 -16
  263. data/spec/spec_tests/data/client_side_encryption/findOneAndDelete.yml +1 -8
  264. data/spec/spec_tests/data/client_side_encryption/findOneAndReplace.yml +1 -8
  265. data/spec/spec_tests/data/client_side_encryption/findOneAndUpdate.yml +1 -8
  266. data/spec/spec_tests/data/client_side_encryption/fle2-BypassQueryAnalysis.yml +101 -0
  267. data/spec/spec_tests/data/client_side_encryption/fle2-Compact.yml +80 -0
  268. data/spec/spec_tests/data/client_side_encryption/fle2-CreateCollection.yml +1263 -0
  269. data/spec/spec_tests/data/client_side_encryption/fle2-DecryptExistingData.yml +64 -0
  270. data/spec/spec_tests/data/client_side_encryption/fle2-Delete.yml +107 -0
  271. data/spec/spec_tests/data/client_side_encryption/fle2-EncryptedFields-vs-EncryptedFieldsMap.yml +80 -0
  272. data/spec/spec_tests/data/client_side_encryption/fle2-EncryptedFields-vs-jsonSchema.yml +90 -0
  273. data/spec/spec_tests/data/client_side_encryption/fle2-EncryptedFieldsMap-defaults.yml +57 -0
  274. data/spec/spec_tests/data/client_side_encryption/fle2-FindOneAndUpdate.yml +213 -0
  275. data/spec/spec_tests/data/client_side_encryption/fle2-InsertFind-Indexed.yml +86 -0
  276. data/spec/spec_tests/data/client_side_encryption/fle2-InsertFind-Unindexed.yml +83 -0
  277. data/spec/spec_tests/data/client_side_encryption/fle2-MissingKey.yml +41 -0
  278. data/spec/spec_tests/data/client_side_encryption/fle2-NoEncryption.yml +42 -0
  279. data/spec/spec_tests/data/client_side_encryption/fle2-Update.yml +221 -0
  280. data/spec/spec_tests/data/client_side_encryption/fle2-validatorAndPartialFieldExpression.yml +168 -0
  281. data/spec/spec_tests/data/client_side_encryption/gcpKMS.yml +46 -0
  282. data/spec/spec_tests/data/client_side_encryption/getMore.yml +1 -8
  283. data/spec/spec_tests/data/client_side_encryption/insert.yml +2 -16
  284. data/spec/spec_tests/data/client_side_encryption/keyAltName.yml +1 -8
  285. data/spec/spec_tests/data/client_side_encryption/localKMS.yml +1 -8
  286. data/spec/spec_tests/data/client_side_encryption/localSchema.yml +1 -8
  287. data/spec/spec_tests/data/client_side_encryption/maxWireVersion.yml +2 -0
  288. data/spec/spec_tests/data/client_side_encryption/missingKey.yml +2 -9
  289. data/spec/spec_tests/data/client_side_encryption/noSchema.yml +39 -0
  290. data/spec/spec_tests/data/client_side_encryption/replaceOne.yml +1 -8
  291. data/spec/spec_tests/data/client_side_encryption/types.yml +44 -70
  292. data/spec/spec_tests/data/client_side_encryption/updateMany.yml +1 -8
  293. data/spec/spec_tests/data/client_side_encryption/updateOne.yml +1 -8
  294. data/spec/spec_tests/data/collection_management/clustered-indexes.yml +135 -0
  295. data/spec/spec_tests/data/collection_management/createCollection-pre_and_post_images.yml +50 -0
  296. data/spec/spec_tests/data/collection_management/modifyCollection-pre_and_post_images.yml +58 -0
  297. data/spec/spec_tests/data/command_monitoring_unified/pre-42-server-connection-id.yml +56 -0
  298. data/spec/spec_tests/data/command_monitoring_unified/server-connection-id.yml +56 -0
  299. data/spec/spec_tests/data/crud/read/aggregate-collation.yml +1 -1
  300. data/spec/spec_tests/data/crud/read/count-collation.yml +1 -1
  301. data/spec/spec_tests/data/crud/read/distinct-collation.yml +1 -1
  302. data/spec/spec_tests/data/crud/read/find-collation.yml +1 -1
  303. data/spec/spec_tests/data/crud/write/bulkWrite-collation.yml +1 -1
  304. data/spec/spec_tests/data/crud/write/deleteMany-collation.yml +1 -1
  305. data/spec/spec_tests/data/crud/write/deleteOne-collation.yml +1 -1
  306. data/spec/spec_tests/data/crud/write/findOneAndDelete-collation.yml +1 -1
  307. data/spec/spec_tests/data/crud/write/findOneAndReplace-collation.yml +1 -1
  308. data/spec/spec_tests/data/crud/write/findOneAndUpdate-collation.yml +1 -1
  309. data/spec/spec_tests/data/crud/write/replaceOne-collation.yml +1 -1
  310. data/spec/spec_tests/data/crud/write/updateMany-collation.yml +1 -1
  311. data/spec/spec_tests/data/crud/write/updateOne-collation.yml +1 -1
  312. data/spec/spec_tests/data/crud_unified/aggregate-allowdiskuse.yml +75 -0
  313. data/spec/spec_tests/data/crud_unified/aggregate-merge.yml +185 -0
  314. data/spec/spec_tests/data/crud_unified/aggregate-out-readConcern.yml +171 -0
  315. data/spec/spec_tests/data/crud_unified/aggregate.yml +215 -0
  316. data/spec/spec_tests/data/crud_unified/bulkWrite-arrayFilters-clientError.yml +98 -0
  317. data/spec/spec_tests/data/crud_unified/bulkWrite-arrayFilters.yml +174 -0
  318. data/spec/spec_tests/data/crud_unified/bulkWrite-comment.yml +189 -0
  319. data/spec/spec_tests/data/crud_unified/bulkWrite-delete-hint-clientError.yml +113 -0
  320. data/spec/spec_tests/data/crud_unified/bulkWrite-delete-hint-serverError.yml +142 -0
  321. data/spec/spec_tests/data/crud_unified/bulkWrite-delete-hint.yml +154 -0
  322. data/spec/spec_tests/data/crud_unified/bulkWrite-deleteMany-hint-unacknowledged.yml +98 -0
  323. data/spec/spec_tests/data/crud_unified/bulkWrite-deleteMany-let.yml +86 -0
  324. data/spec/spec_tests/data/crud_unified/bulkWrite-deleteOne-hint-unacknowledged.yml +97 -0
  325. data/spec/spec_tests/data/crud_unified/bulkWrite-deleteOne-let.yml +86 -0
  326. data/spec/spec_tests/data/crud_unified/bulkWrite-insertOne-dots_and_dollars.yml +138 -0
  327. data/spec/spec_tests/data/crud_unified/bulkWrite-replaceOne-dots_and_dollars.yml +165 -0
  328. data/spec/spec_tests/data/crud_unified/bulkWrite-replaceOne-hint-unacknowledged.yml +103 -0
  329. data/spec/spec_tests/data/crud_unified/bulkWrite-replaceOne-let.yml +93 -0
  330. data/spec/spec_tests/data/crud_unified/bulkWrite-update-hint-clientError.yml +148 -0
  331. data/spec/spec_tests/data/crud_unified/bulkWrite-update-hint-serverError.yml +239 -0
  332. data/spec/spec_tests/data/crud_unified/bulkWrite-update-hint.yml +256 -0
  333. data/spec/spec_tests/data/crud_unified/bulkWrite-update-validation.yml +73 -0
  334. data/spec/spec_tests/data/crud_unified/bulkWrite-updateMany-dots_and_dollars.yml +150 -0
  335. data/spec/spec_tests/data/crud_unified/bulkWrite-updateMany-hint-unacknowledged.yml +104 -0
  336. data/spec/spec_tests/data/crud_unified/bulkWrite-updateMany-let.yml +96 -0
  337. data/spec/spec_tests/data/crud_unified/bulkWrite-updateOne-dots_and_dollars.yml +150 -0
  338. data/spec/spec_tests/data/crud_unified/bulkWrite-updateOne-hint-unacknowledged.yml +103 -0
  339. data/spec/spec_tests/data/crud_unified/bulkWrite-updateOne-let.yml +95 -0
  340. data/spec/spec_tests/data/crud_unified/countDocuments-comment.yml +92 -0
  341. data/spec/spec_tests/data/crud_unified/db-aggregate.yml +73 -0
  342. data/spec/spec_tests/data/crud_unified/deleteMany-comment.yml +97 -0
  343. data/spec/spec_tests/data/crud_unified/deleteMany-hint-clientError.yml +87 -0
  344. data/spec/spec_tests/data/crud_unified/deleteMany-hint-serverError.yml +107 -0
  345. data/spec/spec_tests/data/crud_unified/deleteMany-hint-unacknowledged.yml +90 -0
  346. data/spec/spec_tests/data/crud_unified/deleteMany-hint.yml +99 -0
  347. data/spec/spec_tests/data/crud_unified/deleteMany-let.yml +2 -0
  348. data/spec/spec_tests/data/crud_unified/deleteOne-comment.yml +98 -0
  349. data/spec/spec_tests/data/crud_unified/deleteOne-hint-clientError.yml +80 -0
  350. data/spec/spec_tests/data/crud_unified/deleteOne-hint-serverError.yml +100 -0
  351. data/spec/spec_tests/data/crud_unified/deleteOne-hint-unacknowledged.yml +89 -0
  352. data/spec/spec_tests/data/crud_unified/deleteOne-hint.yml +95 -0
  353. data/spec/spec_tests/data/crud_unified/deleteOne-let.yml +2 -0
  354. data/spec/spec_tests/data/crud_unified/estimatedDocumentCount-comment.yml +95 -0
  355. data/spec/spec_tests/data/crud_unified/estimatedDocumentCount.yml +5 -135
  356. data/spec/spec_tests/data/crud_unified/find-allowdiskuse-clientError.yml +55 -0
  357. data/spec/spec_tests/data/crud_unified/find-allowdiskuse-serverError.yml +68 -0
  358. data/spec/spec_tests/data/crud_unified/find-allowdiskuse.yml +79 -0
  359. data/spec/spec_tests/data/crud_unified/find-comment.yml +166 -0
  360. data/spec/spec_tests/data/crud_unified/find.yml +68 -0
  361. data/spec/spec_tests/data/crud_unified/findOneAndDelete-comment.yml +96 -0
  362. data/spec/spec_tests/data/crud_unified/findOneAndDelete-hint-clientError.yml +91 -0
  363. data/spec/spec_tests/data/crud_unified/findOneAndDelete-hint-serverError.yml +107 -0
  364. data/spec/spec_tests/data/crud_unified/findOneAndDelete-hint-unacknowledged.yml +88 -0
  365. data/spec/spec_tests/data/crud_unified/findOneAndDelete-hint.yml +102 -0
  366. data/spec/spec_tests/data/crud_unified/findOneAndDelete-let.yml +2 -4
  367. data/spec/spec_tests/data/crud_unified/findOneAndReplace-comment.yml +101 -0
  368. data/spec/spec_tests/data/crud_unified/findOneAndReplace-dots_and_dollars.yml +140 -0
  369. data/spec/spec_tests/data/crud_unified/findOneAndReplace-hint-clientError.yml +83 -0
  370. data/spec/spec_tests/data/crud_unified/findOneAndReplace-hint-serverError.yml +99 -0
  371. data/spec/spec_tests/data/crud_unified/findOneAndReplace-hint-unacknowledged.yml +96 -0
  372. data/spec/spec_tests/data/crud_unified/findOneAndReplace-hint.yml +98 -0
  373. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-comment.yml +95 -0
  374. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-dots_and_dollars.yml +127 -0
  375. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-hint-clientError.yml +84 -0
  376. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-hint-serverError.yml +100 -0
  377. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-hint-unacknowledged.yml +92 -0
  378. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-hint.yml +99 -0
  379. data/spec/spec_tests/data/crud_unified/insertMany-comment.yml +93 -0
  380. data/spec/spec_tests/data/crud_unified/insertMany-dots_and_dollars.yml +128 -0
  381. data/spec/spec_tests/data/crud_unified/insertOne-comment.yml +91 -0
  382. data/spec/spec_tests/data/crud_unified/insertOne-dots_and_dollars.yml +238 -0
  383. data/spec/spec_tests/data/crud_unified/replaceOne-comment.yml +105 -0
  384. data/spec/spec_tests/data/crud_unified/replaceOne-dots_and_dollars.yml +180 -0
  385. data/spec/spec_tests/data/crud_unified/replaceOne-hint-unacknowledged.yml +95 -0
  386. data/spec/spec_tests/data/crud_unified/replaceOne-hint.yml +108 -0
  387. data/spec/spec_tests/data/crud_unified/replaceOne-let.yml +98 -0
  388. data/spec/spec_tests/data/crud_unified/replaceOne-validation.yml +37 -0
  389. data/spec/spec_tests/data/crud_unified/updateMany-comment.yml +104 -0
  390. data/spec/spec_tests/data/crud_unified/updateMany-dots_and_dollars.yml +138 -0
  391. data/spec/spec_tests/data/crud_unified/updateMany-hint-clientError.yml +91 -0
  392. data/spec/spec_tests/data/crud_unified/updateMany-hint-serverError.yml +115 -0
  393. data/spec/spec_tests/data/crud_unified/updateMany-hint-unacknowledged.yml +96 -0
  394. data/spec/spec_tests/data/crud_unified/updateMany-hint.yml +115 -0
  395. data/spec/spec_tests/data/crud_unified/updateMany-let.yml +5 -1
  396. data/spec/spec_tests/data/crud_unified/updateMany-validation.yml +39 -0
  397. data/spec/spec_tests/data/crud_unified/updateOne-comment.yml +104 -0
  398. data/spec/spec_tests/data/crud_unified/updateOne-dots_and_dollars.yml +138 -0
  399. data/spec/spec_tests/data/crud_unified/updateOne-hint-clientError.yml +85 -0
  400. data/spec/spec_tests/data/crud_unified/updateOne-hint-serverError.yml +109 -0
  401. data/spec/spec_tests/data/crud_unified/updateOne-hint-unacknowledged.yml +95 -0
  402. data/spec/spec_tests/data/crud_unified/updateOne-hint.yml +109 -0
  403. data/spec/spec_tests/data/crud_unified/updateOne-let.yml +5 -1
  404. data/spec/spec_tests/data/crud_unified/updateOne-validation.yml +37 -0
  405. data/spec/spec_tests/data/crud_unified/updateWithPipelines.yml +8 -14
  406. data/spec/spec_tests/data/retryable_reads/{aggregate-merge.yml → legacy/aggregate-merge.yml} +0 -0
  407. data/spec/spec_tests/data/retryable_reads/{aggregate-serverErrors.yml → legacy/aggregate-serverErrors.yml} +0 -0
  408. data/spec/spec_tests/data/retryable_reads/{aggregate.yml → legacy/aggregate.yml} +0 -0
  409. data/spec/spec_tests/data/retryable_reads/{changeStreams-client.watch-serverErrors.yml → legacy/changeStreams-client.watch-serverErrors.yml} +0 -0
  410. data/spec/spec_tests/data/retryable_reads/{changeStreams-client.watch.yml → legacy/changeStreams-client.watch.yml} +0 -0
  411. data/spec/spec_tests/data/retryable_reads/{changeStreams-db.coll.watch-serverErrors.yml → legacy/changeStreams-db.coll.watch-serverErrors.yml} +0 -0
  412. data/spec/spec_tests/data/retryable_reads/{changeStreams-db.coll.watch.yml → legacy/changeStreams-db.coll.watch.yml} +0 -0
  413. data/spec/spec_tests/data/retryable_reads/{changeStreams-db.watch-serverErrors.yml → legacy/changeStreams-db.watch-serverErrors.yml} +0 -0
  414. data/spec/spec_tests/data/retryable_reads/{changeStreams-db.watch.yml → legacy/changeStreams-db.watch.yml} +0 -0
  415. data/spec/spec_tests/data/retryable_reads/{count-serverErrors.yml → legacy/count-serverErrors.yml} +0 -0
  416. data/spec/spec_tests/data/retryable_reads/{count.yml → legacy/count.yml} +0 -0
  417. data/spec/spec_tests/data/retryable_reads/{countDocuments-serverErrors.yml → legacy/countDocuments-serverErrors.yml} +0 -0
  418. data/spec/spec_tests/data/retryable_reads/{countDocuments.yml → legacy/countDocuments.yml} +0 -0
  419. data/spec/spec_tests/data/retryable_reads/{distinct-serverErrors.yml → legacy/distinct-serverErrors.yml} +0 -0
  420. data/spec/spec_tests/data/retryable_reads/{distinct.yml → legacy/distinct.yml} +0 -0
  421. data/spec/spec_tests/data/retryable_reads/{estimatedDocumentCount-serverErrors-pre4.9.yml → legacy/estimatedDocumentCount-serverErrors.yml} +0 -2
  422. data/spec/spec_tests/data/retryable_reads/{estimatedDocumentCount-pre4.9.yml → legacy/estimatedDocumentCount.yml} +0 -2
  423. data/spec/spec_tests/data/retryable_reads/{find-serverErrors.yml → legacy/find-serverErrors.yml} +0 -0
  424. data/spec/spec_tests/data/retryable_reads/{find.yml → legacy/find.yml} +0 -0
  425. data/spec/spec_tests/data/retryable_reads/{findOne-serverErrors.yml → legacy/findOne-serverErrors.yml} +0 -0
  426. data/spec/spec_tests/data/retryable_reads/{findOne.yml → legacy/findOne.yml} +0 -0
  427. data/spec/spec_tests/data/retryable_reads/{gridfs-download-serverErrors.yml → legacy/gridfs-download-serverErrors.yml} +0 -0
  428. data/spec/spec_tests/data/retryable_reads/{gridfs-download.yml → legacy/gridfs-download.yml} +0 -0
  429. data/spec/spec_tests/data/retryable_reads/{gridfs-downloadByName-serverErrors.yml → legacy/gridfs-downloadByName-serverErrors.yml} +0 -0
  430. data/spec/spec_tests/data/retryable_reads/{gridfs-downloadByName.yml → legacy/gridfs-downloadByName.yml} +0 -0
  431. data/spec/spec_tests/data/retryable_reads/{listCollectionNames-serverErrors.yml → legacy/listCollectionNames-serverErrors.yml} +0 -0
  432. data/spec/spec_tests/data/retryable_reads/{listCollectionNames.yml → legacy/listCollectionNames.yml} +0 -0
  433. data/spec/spec_tests/data/retryable_reads/{listCollectionObjects-serverErrors.yml → legacy/listCollectionObjects-serverErrors.yml} +0 -0
  434. data/spec/spec_tests/data/retryable_reads/{listCollectionObjects.yml → legacy/listCollectionObjects.yml} +0 -0
  435. data/spec/spec_tests/data/retryable_reads/{listCollections-serverErrors.yml → legacy/listCollections-serverErrors.yml} +0 -0
  436. data/spec/spec_tests/data/retryable_reads/{listCollections.yml → legacy/listCollections.yml} +0 -0
  437. data/spec/spec_tests/data/retryable_reads/{listDatabaseNames-serverErrors.yml → legacy/listDatabaseNames-serverErrors.yml} +0 -0
  438. data/spec/spec_tests/data/retryable_reads/{listDatabaseNames.yml → legacy/listDatabaseNames.yml} +0 -0
  439. data/spec/spec_tests/data/retryable_reads/{listDatabaseObjects-serverErrors.yml → legacy/listDatabaseObjects-serverErrors.yml} +0 -0
  440. data/spec/spec_tests/data/retryable_reads/{listDatabaseObjects.yml → legacy/listDatabaseObjects.yml} +0 -0
  441. data/spec/spec_tests/data/retryable_reads/{listDatabases-serverErrors.yml → legacy/listDatabases-serverErrors.yml} +0 -0
  442. data/spec/spec_tests/data/retryable_reads/{listDatabases.yml → legacy/listDatabases.yml} +0 -0
  443. data/spec/spec_tests/data/retryable_reads/{listIndexNames-serverErrors.yml → legacy/listIndexNames-serverErrors.yml} +0 -0
  444. data/spec/spec_tests/data/retryable_reads/{listIndexNames.yml → legacy/listIndexNames.yml} +0 -0
  445. data/spec/spec_tests/data/retryable_reads/{listIndexes-serverErrors.yml → legacy/listIndexes-serverErrors.yml} +0 -0
  446. data/spec/spec_tests/data/retryable_reads/{listIndexes.yml → legacy/listIndexes.yml} +0 -0
  447. data/spec/spec_tests/data/retryable_reads/{mapReduce.yml → legacy/mapReduce.yml} +0 -0
  448. data/spec/spec_tests/data/retryable_reads/unified/handshakeError.yml +129 -0
  449. data/spec/spec_tests/data/retryable_writes/{bulkWrite-errorLabels.yml → legacy/bulkWrite-errorLabels.yml} +0 -0
  450. data/spec/spec_tests/data/retryable_writes/{bulkWrite-serverErrors.yml → legacy/bulkWrite-serverErrors.yml} +1 -1
  451. data/spec/spec_tests/data/retryable_writes/{bulkWrite.yml → legacy/bulkWrite.yml} +0 -0
  452. data/spec/spec_tests/data/retryable_writes/{deleteMany.yml → legacy/deleteMany.yml} +0 -0
  453. data/spec/spec_tests/data/retryable_writes/{deleteOne-errorLabels.yml → legacy/deleteOne-errorLabels.yml} +0 -0
  454. data/spec/spec_tests/data/retryable_writes/{deleteOne-serverErrors.yml → legacy/deleteOne-serverErrors.yml} +1 -1
  455. data/spec/spec_tests/data/retryable_writes/{deleteOne.yml → legacy/deleteOne.yml} +0 -0
  456. data/spec/spec_tests/data/retryable_writes/{findOneAndDelete-errorLabels.yml → legacy/findOneAndDelete-errorLabels.yml} +0 -0
  457. data/spec/spec_tests/data/retryable_writes/{findOneAndDelete-serverErrors.yml → legacy/findOneAndDelete-serverErrors.yml} +1 -1
  458. data/spec/spec_tests/data/retryable_writes/{findOneAndDelete.yml → legacy/findOneAndDelete.yml} +0 -0
  459. data/spec/spec_tests/data/retryable_writes/{findOneAndReplace-errorLabels.yml → legacy/findOneAndReplace-errorLabels.yml} +0 -0
  460. data/spec/spec_tests/data/retryable_writes/{findOneAndReplace-serverErrors.yml → legacy/findOneAndReplace-serverErrors.yml} +1 -1
  461. data/spec/spec_tests/data/retryable_writes/{findOneAndReplace.yml → legacy/findOneAndReplace.yml} +0 -0
  462. data/spec/spec_tests/data/retryable_writes/{findOneAndUpdate-errorLabels.yml → legacy/findOneAndUpdate-errorLabels.yml} +0 -0
  463. data/spec/spec_tests/data/retryable_writes/{findOneAndUpdate-serverErrors.yml → legacy/findOneAndUpdate-serverErrors.yml} +1 -1
  464. data/spec/spec_tests/data/retryable_writes/{findOneAndUpdate.yml → legacy/findOneAndUpdate.yml} +0 -0
  465. data/spec/spec_tests/data/retryable_writes/{insertMany-errorLabels.yml → legacy/insertMany-errorLabels.yml} +0 -0
  466. data/spec/spec_tests/data/retryable_writes/{insertMany-serverErrors.yml → legacy/insertMany-serverErrors.yml} +1 -1
  467. data/spec/spec_tests/data/retryable_writes/{insertMany.yml → legacy/insertMany.yml} +0 -0
  468. data/spec/spec_tests/data/retryable_writes/{insertOne-errorLabels.yml → legacy/insertOne-errorLabels.yml} +0 -0
  469. data/spec/spec_tests/data/retryable_writes/{insertOne-serverErrors.yml → legacy/insertOne-serverErrors.yml} +5 -5
  470. data/spec/spec_tests/data/retryable_writes/{insertOne.yml → legacy/insertOne.yml} +0 -0
  471. data/spec/spec_tests/data/retryable_writes/{replaceOne-errorLabels.yml → legacy/replaceOne-errorLabels.yml} +0 -0
  472. data/spec/spec_tests/data/retryable_writes/{replaceOne-serverErrors.yml → legacy/replaceOne-serverErrors.yml} +1 -1
  473. data/spec/spec_tests/data/retryable_writes/{replaceOne.yml → legacy/replaceOne.yml} +0 -0
  474. data/spec/spec_tests/data/retryable_writes/{updateMany.yml → legacy/updateMany.yml} +0 -0
  475. data/spec/spec_tests/data/retryable_writes/{updateOne-errorLabels.yml → legacy/updateOne-errorLabels.yml} +0 -0
  476. data/spec/spec_tests/data/retryable_writes/{updateOne-serverErrors.yml → legacy/updateOne-serverErrors.yml} +1 -1
  477. data/spec/spec_tests/data/retryable_writes/{updateOne.yml → legacy/updateOne.yml} +0 -0
  478. data/spec/spec_tests/data/retryable_writes/unified/bulkWrite-serverErrors.yml +96 -0
  479. data/spec/spec_tests/data/retryable_writes/unified/handshakeError.yml +137 -0
  480. data/spec/spec_tests/data/retryable_writes/unified/insertOne-serverErrors.yml +78 -0
  481. data/spec/spec_tests/data/sdam/errors/prefer-error-code.yml +2 -2
  482. data/spec/spec_tests/data/seed_list_discovery/load-balanced/loadBalanced-no-results.yml +5 -0
  483. data/spec/spec_tests/data/seed_list_discovery/load-balanced/srvMaxHosts-conflicts_with_loadBalanced-true-txt.yml +5 -0
  484. data/spec/spec_tests/data/seed_list_discovery/load-balanced/srvMaxHosts-conflicts_with_loadBalanced-true.yml +5 -0
  485. data/spec/spec_tests/data/seed_list_discovery/load-balanced/srvMaxHosts-zero-txt.yml +10 -0
  486. data/spec/spec_tests/data/seed_list_discovery/load-balanced/srvMaxHosts-zero.yml +10 -0
  487. data/spec/spec_tests/data/seed_list_discovery/replica-set/srv-service-name.yml +11 -0
  488. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-conflicts_with_replicaSet-txt.yml +5 -0
  489. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-conflicts_with_replicaSet.yml +5 -0
  490. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-equal_to_srv_records.yml +16 -0
  491. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-greater_than_srv_records.yml +15 -0
  492. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-less_than_srv_records.yml +15 -0
  493. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-zero-txt.yml +15 -0
  494. data/spec/spec_tests/data/seed_list_discovery/replica-set/srvMaxHosts-zero.yml +15 -0
  495. data/spec/spec_tests/data/seed_list_discovery/sharded/srvMaxHosts-equal_to_srv_records.yml +13 -0
  496. data/spec/spec_tests/data/seed_list_discovery/sharded/srvMaxHosts-greater_than_srv_records.yml +12 -0
  497. data/spec/spec_tests/data/seed_list_discovery/sharded/srvMaxHosts-less_than_srv_records.yml +10 -0
  498. data/spec/spec_tests/data/seed_list_discovery/sharded/srvMaxHosts-zero.yml +11 -0
  499. data/spec/spec_tests/data/server_selection/Unknown/read/ghost.yml +11 -0
  500. data/spec/spec_tests/data/server_selection/Unknown/write/ghost.yml +11 -0
  501. data/spec/spec_tests/data/sessions_unified/driver-sessions-server-support.yml +123 -0
  502. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-not-supported-client-error.yml +9 -3
  503. data/spec/spec_tests/data/transactions/error-labels.yml +1 -1
  504. data/spec/spec_tests/data/transactions/errors-client.yml +8 -9
  505. data/spec/spec_tests/data/transactions/mongos-recovery-token.yml +1 -1
  506. data/spec/spec_tests/data/transactions/retryable-abort-errorLabels.yml +0 -2
  507. data/spec/spec_tests/data/transactions/retryable-abort.yml +7 -9
  508. data/spec/spec_tests/data/transactions/retryable-commit-errorLabels.yml +0 -2
  509. data/spec/spec_tests/data/transactions/retryable-commit.yml +7 -9
  510. data/spec/spec_tests/data/transactions/retryable-writes.yml +0 -2
  511. data/spec/spec_tests/data/unified/invalid/expectedEventsForClient-ignoreExtraEvents-type.yml +15 -0
  512. data/spec/spec_tests/data/unified/valid-fail/operation-unsupported.yml +13 -0
  513. data/spec/spec_tests/data/unified/valid-pass/expectedEventsForClient-ignoreExtraEvents.yml +78 -0
  514. data/spec/spec_tests/data/unified/valid-pass/poc-change-streams.yml +4 -1
  515. data/spec/spec_tests/data/unified/valid-pass/poc-command-monitoring.yml +3 -3
  516. data/spec/spec_tests/data/unified/valid-pass/poc-transactions.yml +3 -2
  517. data/spec/spec_tests/data/uri_options/srv-options.yml +96 -0
  518. data/spec/spec_tests/data/versioned_api/crud-api-version-1-strict.yml +6 -4
  519. data/spec/spec_tests/data/versioned_api/crud-api-version-1.yml +7 -5
  520. data/spec/spec_tests/retryable_reads_spec.rb +4 -1
  521. data/spec/spec_tests/retryable_reads_unified_spec.rb +22 -0
  522. data/spec/spec_tests/retryable_writes_spec.rb +4 -1
  523. data/spec/spec_tests/retryable_writes_unified_spec.rb +21 -0
  524. data/spec/spec_tests/seed_list_discovery_spec.rb +10 -1
  525. data/spec/spec_tests/unified_spec.rb +6 -1
  526. data/spec/stress/connection_pool_timing_spec.rb +2 -1
  527. data/spec/stress/fork_reconnect_stress_spec.rb +3 -2
  528. data/spec/support/authorization.rb +1 -1
  529. data/spec/support/certificates/atlas-ocsp-ca.crt +47 -40
  530. data/spec/support/certificates/atlas-ocsp.crt +106 -101
  531. data/spec/support/cluster_tools.rb +1 -1
  532. data/spec/support/common_shortcuts.rb +22 -0
  533. data/spec/support/crypt/corpus/corpus-encrypted.json +9515 -0
  534. data/spec/support/crypt/corpus/corpus-key-aws.json +32 -32
  535. data/spec/support/crypt/corpus/corpus-key-azure.json +33 -0
  536. data/spec/support/crypt/corpus/corpus-key-gcp.json +35 -0
  537. data/spec/support/crypt/corpus/corpus-key-kmip.json +32 -0
  538. data/spec/support/crypt/corpus/corpus-key-local.json +30 -30
  539. data/spec/support/crypt/corpus/corpus-schema.json +4399 -121
  540. data/spec/support/crypt/corpus/corpus.json +4999 -37
  541. data/spec/support/crypt/data_keys/key_document_azure.json +33 -0
  542. data/spec/support/crypt/data_keys/key_document_gcp.json +37 -0
  543. data/spec/support/crypt/data_keys/key_document_kmip.json +32 -0
  544. data/spec/support/crypt/encryptedFields.json +33 -0
  545. data/spec/support/crypt/keys/key1-document.json +30 -0
  546. data/spec/support/crypt/schema_maps/schema_map_azure.json +17 -0
  547. data/spec/support/crypt/schema_maps/schema_map_azure_key_alt_names.json +12 -0
  548. data/spec/support/crypt/schema_maps/schema_map_gcp.json +17 -0
  549. data/spec/support/crypt/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
  550. data/spec/support/crypt/schema_maps/schema_map_kmip.json +17 -0
  551. data/spec/support/crypt/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
  552. data/spec/support/crypt.rb +207 -6
  553. data/spec/support/macros.rb +18 -0
  554. data/spec/support/mongos_macros.rb +17 -0
  555. data/spec/support/shared/scram_conversation.rb +2 -1
  556. data/spec/support/shared/session.rb +13 -7
  557. data/spec/support/spec_config.rb +82 -1
  558. data/spec/support/utils.rb +25 -4
  559. data.tar.gz.sig +0 -0
  560. metadata +1468 -1214
  561. metadata.gz.sig +0 -0
  562. data/lib/mongo/operation/delete/legacy.rb +0 -64
  563. data/lib/mongo/operation/insert/legacy.rb +0 -68
  564. data/lib/mongo/operation/update/legacy/result.rb +0 -112
  565. data/lib/mongo/operation/update/legacy.rb +0 -76
  566. data/spec/mongo/dbref_spec.rb +0 -152
  567. data/spec/mongo/operation/kill_cursors_spec.rb +0 -47
  568. data/spec/spec_tests/change_streams_spec.rb +0 -93
  569. data/spec/spec_tests/data/change_streams/change-streams-errors.yml +0 -101
  570. data/spec/spec_tests/data/change_streams/change-streams-resume-allowlist.yml +0 -1173
  571. data/spec/spec_tests/data/change_streams/change-streams-resume-errorLabels.yml +0 -1105
  572. data/spec/spec_tests/data/change_streams/change-streams.yml +0 -535
  573. data/spec/spec_tests/data/crud_v2/aggregate-merge.yml +0 -103
  574. data/spec/spec_tests/data/crud_v2/aggregate-out-readConcern.yml +0 -111
  575. data/spec/spec_tests/data/crud_v2/bulkWrite-arrayFilters.yml +0 -103
  576. data/spec/spec_tests/data/crud_v2/bulkWrite-delete-hint-clientError.yml +0 -63
  577. data/spec/spec_tests/data/crud_v2/bulkWrite-delete-hint-serverError.yml +0 -92
  578. data/spec/spec_tests/data/crud_v2/bulkWrite-delete-hint.yml +0 -103
  579. data/spec/spec_tests/data/crud_v2/bulkWrite-update-hint-clientError.yml +0 -90
  580. data/spec/spec_tests/data/crud_v2/bulkWrite-update-hint-serverError.yml +0 -147
  581. data/spec/spec_tests/data/crud_v2/bulkWrite-update-hint.yml +0 -164
  582. data/spec/spec_tests/data/crud_v2/db-aggregate.yml +0 -39
  583. data/spec/spec_tests/data/crud_v2/deleteMany-hint-clientError.yml +0 -43
  584. data/spec/spec_tests/data/crud_v2/deleteMany-hint-serverError.yml +0 -62
  585. data/spec/spec_tests/data/crud_v2/deleteMany-hint.yml +0 -58
  586. data/spec/spec_tests/data/crud_v2/deleteOne-hint-clientError.yml +0 -41
  587. data/spec/spec_tests/data/crud_v2/deleteOne-hint-serverError.yml +0 -60
  588. data/spec/spec_tests/data/crud_v2/deleteOne-hint.yml +0 -57
  589. data/spec/spec_tests/data/crud_v2/find-allowdiskuse-clientError.yml +0 -28
  590. data/spec/spec_tests/data/crud_v2/find-allowdiskuse-serverError.yml +0 -44
  591. data/spec/spec_tests/data/crud_v2/find-allowdiskuse.yml +0 -50
  592. data/spec/spec_tests/data/crud_v2/findOneAndDelete-hint-clientError.yml +0 -45
  593. data/spec/spec_tests/data/crud_v2/findOneAndDelete-hint-serverError.yml +0 -60
  594. data/spec/spec_tests/data/crud_v2/findOneAndDelete-hint.yml +0 -56
  595. data/spec/spec_tests/data/crud_v2/findOneAndReplace-hint-clientError.yml +0 -40
  596. data/spec/spec_tests/data/crud_v2/findOneAndReplace-hint-serverError.yml +0 -59
  597. data/spec/spec_tests/data/crud_v2/findOneAndReplace-hint.yml +0 -55
  598. data/spec/spec_tests/data/crud_v2/findOneAndUpdate-hint-clientError.yml +0 -40
  599. data/spec/spec_tests/data/crud_v2/findOneAndUpdate-hint-serverError.yml +0 -58
  600. data/spec/spec_tests/data/crud_v2/findOneAndUpdate-hint.yml +0 -55
  601. data/spec/spec_tests/data/crud_v2/replaceOne-hint.yml +0 -61
  602. data/spec/spec_tests/data/crud_v2/unacknowledged-bulkWrite-delete-hint-clientError.yml +0 -60
  603. data/spec/spec_tests/data/crud_v2/unacknowledged-bulkWrite-update-hint-clientError.yml +0 -88
  604. data/spec/spec_tests/data/crud_v2/unacknowledged-deleteMany-hint-clientError.yml +0 -40
  605. data/spec/spec_tests/data/crud_v2/unacknowledged-deleteOne-hint-clientError.yml +0 -38
  606. data/spec/spec_tests/data/crud_v2/unacknowledged-findOneAndDelete-hint-clientError.yml +0 -42
  607. data/spec/spec_tests/data/crud_v2/unacknowledged-findOneAndReplace-hint-clientError.yml +0 -40
  608. data/spec/spec_tests/data/crud_v2/unacknowledged-findOneAndUpdate-hint-clientError.yml +0 -40
  609. data/spec/spec_tests/data/crud_v2/unacknowledged-replaceOne-hint-clientError.yml +0 -40
  610. data/spec/spec_tests/data/crud_v2/unacknowledged-updateMany-hint-clientError.yml +0 -43
  611. data/spec/spec_tests/data/crud_v2/unacknowledged-updateOne-hint-clientError.yml +0 -40
  612. data/spec/spec_tests/data/crud_v2/updateMany-hint-clientError.yml +0 -45
  613. data/spec/spec_tests/data/crud_v2/updateMany-hint-serverError.yml +0 -66
  614. data/spec/spec_tests/data/crud_v2/updateMany-hint.yml +0 -65
  615. data/spec/spec_tests/data/crud_v2/updateOne-hint-clientError.yml +0 -43
  616. data/spec/spec_tests/data/crud_v2/updateOne-hint-serverError.yml +0 -62
  617. data/spec/spec_tests/data/crud_v2/updateOne-hint.yml +0 -61
  618. data/spec/spec_tests/data/crud_v2/updateWithPipelines.yml +0 -157
  619. data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-4.9.yml +0 -60
  620. data/spec/spec_tests/data/retryable_reads/estimatedDocumentCount-serverErrors-4.9.yml +0 -146
  621. data/spec/support/crypt/corpus/corpus_encrypted.json +0 -4152
  622. data/spec/support/session_registry.rb +0 -55
@@ -1,1173 +0,0 @@
1
- # Tests for resume behavior on server versions that do not support the ResumableChangeStreamError label
2
- collection_name: &collection_name "test"
3
- database_name: &database_name "change-stream-tests"
4
- tests:
5
- -
6
- description: "change stream resumes after a network error"
7
- minServerVersion: "4.2"
8
- failPoint:
9
- configureFailPoint: failCommand
10
- mode: { times: 1 }
11
- data:
12
- failCommands: ["getMore"]
13
- closeConnection: true
14
- target: collection
15
- topology:
16
- - replicaset
17
- - sharded
18
- changeStreamPipeline: []
19
- changeStreamOptions: {}
20
- operations:
21
- -
22
- database: *database_name
23
- collection: *collection_name
24
- name: insertOne
25
- arguments:
26
- document:
27
- x: 1
28
- expectations:
29
- -
30
- command_started_event:
31
- command:
32
- aggregate: *collection_name
33
- cursor: {}
34
- pipeline:
35
- -
36
- $changeStream: {}
37
- command_name: aggregate
38
- database_name: *database_name
39
- -
40
- command_started_event:
41
- command:
42
- getMore: 42
43
- collection: *collection_name
44
- command_name: getMore
45
- database_name: *database_name
46
- -
47
- command_started_event:
48
- command:
49
- aggregate: *collection_name
50
- cursor: {}
51
- pipeline:
52
- -
53
- $changeStream: {}
54
- command_name: aggregate
55
- database_name: *database_name
56
- result:
57
- success:
58
- -
59
- _id: "42"
60
- documentKey: "42"
61
- operationType: insert
62
- ns:
63
- db: *database_name
64
- coll: *collection_name
65
- fullDocument:
66
- x:
67
- $numberInt: "1"
68
- -
69
- description: "change stream resumes after HostUnreachable"
70
- minServerVersion: "4.2"
71
- maxServerVersion: "4.2.99"
72
- failPoint:
73
- configureFailPoint: failCommand
74
- mode: { times: 1 }
75
- data:
76
- failCommands: ["getMore"]
77
- errorCode: 6
78
- closeConnection: false
79
- target: collection
80
- topology:
81
- - replicaset
82
- - sharded
83
- changeStreamPipeline: []
84
- changeStreamOptions: {}
85
- operations:
86
- -
87
- database: *database_name
88
- collection: *collection_name
89
- name: insertOne
90
- arguments:
91
- document:
92
- x: 1
93
- expectations:
94
- -
95
- command_started_event:
96
- command:
97
- aggregate: *collection_name
98
- cursor: {}
99
- pipeline:
100
- -
101
- $changeStream: {}
102
- command_name: aggregate
103
- database_name: *database_name
104
- -
105
- command_started_event:
106
- command:
107
- getMore: 42
108
- collection: *collection_name
109
- command_name: getMore
110
- database_name: *database_name
111
- -
112
- command_started_event:
113
- command:
114
- aggregate: *collection_name
115
- cursor: {}
116
- pipeline:
117
- -
118
- $changeStream: {}
119
- command_name: aggregate
120
- database_name: *database_name
121
- result:
122
- success:
123
- -
124
- _id: "42"
125
- documentKey: "42"
126
- operationType: insert
127
- ns:
128
- db: *database_name
129
- coll: *collection_name
130
- fullDocument:
131
- x:
132
- $numberInt: "1"
133
- -
134
- description: "change stream resumes after HostNotFound"
135
- minServerVersion: "4.2"
136
- maxServerVersion: "4.2.99"
137
- failPoint:
138
- configureFailPoint: failCommand
139
- mode: { times: 1 }
140
- data:
141
- failCommands: ["getMore"]
142
- errorCode: 7
143
- closeConnection: false
144
- target: collection
145
- topology:
146
- - replicaset
147
- - sharded
148
- changeStreamPipeline: []
149
- changeStreamOptions: {}
150
- operations:
151
- -
152
- database: *database_name
153
- collection: *collection_name
154
- name: insertOne
155
- arguments:
156
- document:
157
- x: 1
158
- expectations:
159
- -
160
- command_started_event:
161
- command:
162
- aggregate: *collection_name
163
- cursor: {}
164
- pipeline:
165
- -
166
- $changeStream: {}
167
- command_name: aggregate
168
- database_name: *database_name
169
- -
170
- command_started_event:
171
- command:
172
- getMore: 42
173
- collection: *collection_name
174
- command_name: getMore
175
- database_name: *database_name
176
- -
177
- command_started_event:
178
- command:
179
- aggregate: *collection_name
180
- cursor: {}
181
- pipeline:
182
- -
183
- $changeStream: {}
184
- command_name: aggregate
185
- database_name: *database_name
186
- result:
187
- success:
188
- -
189
- _id: "42"
190
- documentKey: "42"
191
- operationType: insert
192
- ns:
193
- db: *database_name
194
- coll: *collection_name
195
- fullDocument:
196
- x:
197
- $numberInt: "1"
198
- -
199
- description: "change stream resumes after NetworkTimeout"
200
- minServerVersion: "4.2"
201
- maxServerVersion: "4.2.99"
202
- failPoint:
203
- configureFailPoint: failCommand
204
- mode: { times: 1 }
205
- data:
206
- failCommands: ["getMore"]
207
- errorCode: 89
208
- closeConnection: false
209
- target: collection
210
- topology:
211
- - replicaset
212
- - sharded
213
- changeStreamPipeline: []
214
- changeStreamOptions: {}
215
- operations:
216
- -
217
- database: *database_name
218
- collection: *collection_name
219
- name: insertOne
220
- arguments:
221
- document:
222
- x: 1
223
- expectations:
224
- -
225
- command_started_event:
226
- command:
227
- aggregate: *collection_name
228
- cursor: {}
229
- pipeline:
230
- -
231
- $changeStream: {}
232
- command_name: aggregate
233
- database_name: *database_name
234
- -
235
- command_started_event:
236
- command:
237
- getMore: 42
238
- collection: *collection_name
239
- command_name: getMore
240
- database_name: *database_name
241
- -
242
- command_started_event:
243
- command:
244
- aggregate: *collection_name
245
- cursor: {}
246
- pipeline:
247
- -
248
- $changeStream: {}
249
- command_name: aggregate
250
- database_name: *database_name
251
- result:
252
- success:
253
- -
254
- _id: "42"
255
- documentKey: "42"
256
- operationType: insert
257
- ns:
258
- db: *database_name
259
- coll: *collection_name
260
- fullDocument:
261
- x:
262
- $numberInt: "1"
263
- -
264
- description: "change stream resumes after ShutdownInProgress"
265
- minServerVersion: "4.2"
266
- maxServerVersion: "4.2.99"
267
- failPoint:
268
- configureFailPoint: failCommand
269
- mode: { times: 1 }
270
- data:
271
- failCommands: ["getMore"]
272
- errorCode: 91
273
- closeConnection: false
274
- target: collection
275
- topology:
276
- - replicaset
277
- - sharded
278
- changeStreamPipeline: []
279
- changeStreamOptions: {}
280
- operations:
281
- -
282
- database: *database_name
283
- collection: *collection_name
284
- name: insertOne
285
- arguments:
286
- document:
287
- x: 1
288
- expectations:
289
- -
290
- command_started_event:
291
- command:
292
- aggregate: *collection_name
293
- cursor: {}
294
- pipeline:
295
- -
296
- $changeStream: {}
297
- command_name: aggregate
298
- database_name: *database_name
299
- -
300
- command_started_event:
301
- command:
302
- getMore: 42
303
- collection: *collection_name
304
- command_name: getMore
305
- database_name: *database_name
306
- -
307
- command_started_event:
308
- command:
309
- aggregate: *collection_name
310
- cursor: {}
311
- pipeline:
312
- -
313
- $changeStream: {}
314
- command_name: aggregate
315
- database_name: *database_name
316
- result:
317
- success:
318
- -
319
- _id: "42"
320
- documentKey: "42"
321
- operationType: insert
322
- ns:
323
- db: *database_name
324
- coll: *collection_name
325
- fullDocument:
326
- x:
327
- $numberInt: "1"
328
- -
329
- description: "change stream resumes after PrimarySteppedDown"
330
- minServerVersion: "4.2"
331
- maxServerVersion: "4.2.99"
332
- failPoint:
333
- configureFailPoint: failCommand
334
- mode: { times: 1 }
335
- data:
336
- failCommands: ["getMore"]
337
- errorCode: 189
338
- closeConnection: false
339
- target: collection
340
- topology:
341
- - replicaset
342
- - sharded
343
- changeStreamPipeline: []
344
- changeStreamOptions: {}
345
- operations:
346
- -
347
- database: *database_name
348
- collection: *collection_name
349
- name: insertOne
350
- arguments:
351
- document:
352
- x: 1
353
- expectations:
354
- -
355
- command_started_event:
356
- command:
357
- aggregate: *collection_name
358
- cursor: {}
359
- pipeline:
360
- -
361
- $changeStream: {}
362
- command_name: aggregate
363
- database_name: *database_name
364
- -
365
- command_started_event:
366
- command:
367
- getMore: 42
368
- collection: *collection_name
369
- command_name: getMore
370
- database_name: *database_name
371
- -
372
- command_started_event:
373
- command:
374
- aggregate: *collection_name
375
- cursor: {}
376
- pipeline:
377
- -
378
- $changeStream: {}
379
- command_name: aggregate
380
- database_name: *database_name
381
- result:
382
- success:
383
- -
384
- _id: "42"
385
- documentKey: "42"
386
- operationType: insert
387
- ns:
388
- db: *database_name
389
- coll: *collection_name
390
- fullDocument:
391
- x:
392
- $numberInt: "1"
393
- -
394
- description: "change stream resumes after ExceededTimeLimit"
395
- minServerVersion: "4.2"
396
- maxServerVersion: "4.2.99"
397
- failPoint:
398
- configureFailPoint: failCommand
399
- mode: { times: 1 }
400
- data:
401
- failCommands: ["getMore"]
402
- errorCode: 262
403
- closeConnection: false
404
- target: collection
405
- topology:
406
- - replicaset
407
- - sharded
408
- changeStreamPipeline: []
409
- changeStreamOptions: {}
410
- operations:
411
- -
412
- database: *database_name
413
- collection: *collection_name
414
- name: insertOne
415
- arguments:
416
- document:
417
- x: 1
418
- expectations:
419
- -
420
- command_started_event:
421
- command:
422
- aggregate: *collection_name
423
- cursor: {}
424
- pipeline:
425
- -
426
- $changeStream: {}
427
- command_name: aggregate
428
- database_name: *database_name
429
- -
430
- command_started_event:
431
- command:
432
- getMore: 42
433
- collection: *collection_name
434
- command_name: getMore
435
- database_name: *database_name
436
- -
437
- command_started_event:
438
- command:
439
- aggregate: *collection_name
440
- cursor: {}
441
- pipeline:
442
- -
443
- $changeStream: {}
444
- command_name: aggregate
445
- database_name: *database_name
446
- result:
447
- success:
448
- -
449
- _id: "42"
450
- documentKey: "42"
451
- operationType: insert
452
- ns:
453
- db: *database_name
454
- coll: *collection_name
455
- fullDocument:
456
- x:
457
- $numberInt: "1"
458
- -
459
- description: "change stream resumes after SocketException"
460
- minServerVersion: "4.2"
461
- maxServerVersion: "4.2.99"
462
- failPoint:
463
- configureFailPoint: failCommand
464
- mode: { times: 1 }
465
- data:
466
- failCommands: ["getMore"]
467
- errorCode: 9001
468
- closeConnection: false
469
- target: collection
470
- topology:
471
- - replicaset
472
- - sharded
473
- changeStreamPipeline: []
474
- changeStreamOptions: {}
475
- operations:
476
- -
477
- database: *database_name
478
- collection: *collection_name
479
- name: insertOne
480
- arguments:
481
- document:
482
- x: 1
483
- expectations:
484
- -
485
- command_started_event:
486
- command:
487
- aggregate: *collection_name
488
- cursor: {}
489
- pipeline:
490
- -
491
- $changeStream: {}
492
- command_name: aggregate
493
- database_name: *database_name
494
- -
495
- command_started_event:
496
- command:
497
- getMore: 42
498
- collection: *collection_name
499
- command_name: getMore
500
- database_name: *database_name
501
- -
502
- command_started_event:
503
- command:
504
- aggregate: *collection_name
505
- cursor: {}
506
- pipeline:
507
- -
508
- $changeStream: {}
509
- command_name: aggregate
510
- database_name: *database_name
511
- result:
512
- success:
513
- -
514
- _id: "42"
515
- documentKey: "42"
516
- operationType: insert
517
- ns:
518
- db: *database_name
519
- coll: *collection_name
520
- fullDocument:
521
- x:
522
- $numberInt: "1"
523
- -
524
- description: "change stream resumes after NotWritablePrimary"
525
- minServerVersion: "4.2"
526
- maxServerVersion: "4.2.99"
527
- failPoint:
528
- configureFailPoint: failCommand
529
- mode: { times: 1 }
530
- data:
531
- failCommands: ["getMore"]
532
- errorCode: 10107
533
- closeConnection: false
534
- target: collection
535
- topology:
536
- - replicaset
537
- - sharded
538
- changeStreamPipeline: []
539
- changeStreamOptions: {}
540
- operations:
541
- -
542
- database: *database_name
543
- collection: *collection_name
544
- name: insertOne
545
- arguments:
546
- document:
547
- x: 1
548
- expectations:
549
- -
550
- command_started_event:
551
- command:
552
- aggregate: *collection_name
553
- cursor: {}
554
- pipeline:
555
- -
556
- $changeStream: {}
557
- command_name: aggregate
558
- database_name: *database_name
559
- -
560
- command_started_event:
561
- command:
562
- getMore: 42
563
- collection: *collection_name
564
- command_name: getMore
565
- database_name: *database_name
566
- -
567
- command_started_event:
568
- command:
569
- aggregate: *collection_name
570
- cursor: {}
571
- pipeline:
572
- -
573
- $changeStream: {}
574
- command_name: aggregate
575
- database_name: *database_name
576
- result:
577
- success:
578
- -
579
- _id: "42"
580
- documentKey: "42"
581
- operationType: insert
582
- ns:
583
- db: *database_name
584
- coll: *collection_name
585
- fullDocument:
586
- x:
587
- $numberInt: "1"
588
- -
589
- description: "change stream resumes after InterruptedAtShutdown"
590
- minServerVersion: "4.2"
591
- maxServerVersion: "4.2.99"
592
- failPoint:
593
- configureFailPoint: failCommand
594
- mode: { times: 1 }
595
- data:
596
- failCommands: ["getMore"]
597
- errorCode: 11600
598
- closeConnection: false
599
- target: collection
600
- topology:
601
- - replicaset
602
- - sharded
603
- changeStreamPipeline: []
604
- changeStreamOptions: {}
605
- operations:
606
- -
607
- database: *database_name
608
- collection: *collection_name
609
- name: insertOne
610
- arguments:
611
- document:
612
- x: 1
613
- expectations:
614
- -
615
- command_started_event:
616
- command:
617
- aggregate: *collection_name
618
- cursor: {}
619
- pipeline:
620
- -
621
- $changeStream: {}
622
- command_name: aggregate
623
- database_name: *database_name
624
- -
625
- command_started_event:
626
- command:
627
- getMore: 42
628
- collection: *collection_name
629
- command_name: getMore
630
- database_name: *database_name
631
- -
632
- command_started_event:
633
- command:
634
- aggregate: *collection_name
635
- cursor: {}
636
- pipeline:
637
- -
638
- $changeStream: {}
639
- command_name: aggregate
640
- database_name: *database_name
641
- result:
642
- success:
643
- -
644
- _id: "42"
645
- documentKey: "42"
646
- operationType: insert
647
- ns:
648
- db: *database_name
649
- coll: *collection_name
650
- fullDocument:
651
- x:
652
- $numberInt: "1"
653
- -
654
- description: "change stream resumes after InterruptedDueToReplStateChange"
655
- minServerVersion: "4.2"
656
- maxServerVersion: "4.2.99"
657
- failPoint:
658
- configureFailPoint: failCommand
659
- mode: { times: 1 }
660
- data:
661
- failCommands: ["getMore"]
662
- errorCode: 11602
663
- closeConnection: false
664
- target: collection
665
- topology:
666
- - replicaset
667
- - sharded
668
- changeStreamPipeline: []
669
- changeStreamOptions: {}
670
- operations:
671
- -
672
- database: *database_name
673
- collection: *collection_name
674
- name: insertOne
675
- arguments:
676
- document:
677
- x: 1
678
- expectations:
679
- -
680
- command_started_event:
681
- command:
682
- aggregate: *collection_name
683
- cursor: {}
684
- pipeline:
685
- -
686
- $changeStream: {}
687
- command_name: aggregate
688
- database_name: *database_name
689
- -
690
- command_started_event:
691
- command:
692
- getMore: 42
693
- collection: *collection_name
694
- command_name: getMore
695
- database_name: *database_name
696
- -
697
- command_started_event:
698
- command:
699
- aggregate: *collection_name
700
- cursor: {}
701
- pipeline:
702
- -
703
- $changeStream: {}
704
- command_name: aggregate
705
- database_name: *database_name
706
- result:
707
- success:
708
- -
709
- _id: "42"
710
- documentKey: "42"
711
- operationType: insert
712
- ns:
713
- db: *database_name
714
- coll: *collection_name
715
- fullDocument:
716
- x:
717
- $numberInt: "1"
718
- -
719
- description: "change stream resumes after NotPrimaryNoSecondaryOk"
720
- minServerVersion: "4.2"
721
- maxServerVersion: "4.2.99"
722
- failPoint:
723
- configureFailPoint: failCommand
724
- mode: { times: 1 }
725
- data:
726
- failCommands: ["getMore"]
727
- errorCode: 13435
728
- closeConnection: false
729
- target: collection
730
- topology:
731
- - replicaset
732
- - sharded
733
- changeStreamPipeline: []
734
- changeStreamOptions: {}
735
- operations:
736
- -
737
- database: *database_name
738
- collection: *collection_name
739
- name: insertOne
740
- arguments:
741
- document:
742
- x: 1
743
- expectations:
744
- -
745
- command_started_event:
746
- command:
747
- aggregate: *collection_name
748
- cursor: {}
749
- pipeline:
750
- -
751
- $changeStream: {}
752
- command_name: aggregate
753
- database_name: *database_name
754
- -
755
- command_started_event:
756
- command:
757
- getMore: 42
758
- collection: *collection_name
759
- command_name: getMore
760
- database_name: *database_name
761
- -
762
- command_started_event:
763
- command:
764
- aggregate: *collection_name
765
- cursor: {}
766
- pipeline:
767
- -
768
- $changeStream: {}
769
- command_name: aggregate
770
- database_name: *database_name
771
- result:
772
- success:
773
- -
774
- _id: "42"
775
- documentKey: "42"
776
- operationType: insert
777
- ns:
778
- db: *database_name
779
- coll: *collection_name
780
- fullDocument:
781
- x:
782
- $numberInt: "1"
783
- -
784
- description: "change stream resumes after NotPrimaryOrSecondary"
785
- minServerVersion: "4.2"
786
- maxServerVersion: "4.2.99"
787
- failPoint:
788
- configureFailPoint: failCommand
789
- mode: { times: 1 }
790
- data:
791
- failCommands: ["getMore"]
792
- errorCode: 13436
793
- closeConnection: false
794
- target: collection
795
- topology:
796
- - replicaset
797
- - sharded
798
- changeStreamPipeline: []
799
- changeStreamOptions: {}
800
- operations:
801
- -
802
- database: *database_name
803
- collection: *collection_name
804
- name: insertOne
805
- arguments:
806
- document:
807
- x: 1
808
- expectations:
809
- -
810
- command_started_event:
811
- command:
812
- aggregate: *collection_name
813
- cursor: {}
814
- pipeline:
815
- -
816
- $changeStream: {}
817
- command_name: aggregate
818
- database_name: *database_name
819
- -
820
- command_started_event:
821
- command:
822
- getMore: 42
823
- collection: *collection_name
824
- command_name: getMore
825
- database_name: *database_name
826
- -
827
- command_started_event:
828
- command:
829
- aggregate: *collection_name
830
- cursor: {}
831
- pipeline:
832
- -
833
- $changeStream: {}
834
- command_name: aggregate
835
- database_name: *database_name
836
- result:
837
- success:
838
- -
839
- _id: "42"
840
- documentKey: "42"
841
- operationType: insert
842
- ns:
843
- db: *database_name
844
- coll: *collection_name
845
- fullDocument:
846
- x:
847
- $numberInt: "1"
848
- -
849
- description: "change stream resumes after StaleShardVersion"
850
- minServerVersion: "4.2"
851
- maxServerVersion: "4.2.99"
852
- failPoint:
853
- configureFailPoint: failCommand
854
- mode: { times: 1 }
855
- data:
856
- failCommands: ["getMore"]
857
- errorCode: 63
858
- closeConnection: false
859
- target: collection
860
- topology:
861
- - replicaset
862
- - sharded
863
- changeStreamPipeline: []
864
- changeStreamOptions: {}
865
- operations:
866
- -
867
- database: *database_name
868
- collection: *collection_name
869
- name: insertOne
870
- arguments:
871
- document:
872
- x: 1
873
- expectations:
874
- -
875
- command_started_event:
876
- command:
877
- aggregate: *collection_name
878
- cursor: {}
879
- pipeline:
880
- -
881
- $changeStream: {}
882
- command_name: aggregate
883
- database_name: *database_name
884
- -
885
- command_started_event:
886
- command:
887
- getMore: 42
888
- collection: *collection_name
889
- command_name: getMore
890
- database_name: *database_name
891
- -
892
- command_started_event:
893
- command:
894
- aggregate: *collection_name
895
- cursor: {}
896
- pipeline:
897
- -
898
- $changeStream: {}
899
- command_name: aggregate
900
- database_name: *database_name
901
- result:
902
- success:
903
- -
904
- _id: "42"
905
- documentKey: "42"
906
- operationType: insert
907
- ns:
908
- db: *database_name
909
- coll: *collection_name
910
- fullDocument:
911
- x:
912
- $numberInt: "1"
913
- -
914
- description: "change stream resumes after StaleEpoch"
915
- minServerVersion: "4.2"
916
- maxServerVersion: "4.2.99"
917
- failPoint:
918
- configureFailPoint: failCommand
919
- mode: { times: 1 }
920
- data:
921
- failCommands: ["getMore"]
922
- errorCode: 150
923
- closeConnection: false
924
- target: collection
925
- topology:
926
- - replicaset
927
- - sharded
928
- changeStreamPipeline: []
929
- changeStreamOptions: {}
930
- operations:
931
- -
932
- database: *database_name
933
- collection: *collection_name
934
- name: insertOne
935
- arguments:
936
- document:
937
- x: 1
938
- expectations:
939
- -
940
- command_started_event:
941
- command:
942
- aggregate: *collection_name
943
- cursor: {}
944
- pipeline:
945
- -
946
- $changeStream: {}
947
- command_name: aggregate
948
- database_name: *database_name
949
- -
950
- command_started_event:
951
- command:
952
- getMore: 42
953
- collection: *collection_name
954
- command_name: getMore
955
- database_name: *database_name
956
- -
957
- command_started_event:
958
- command:
959
- aggregate: *collection_name
960
- cursor: {}
961
- pipeline:
962
- -
963
- $changeStream: {}
964
- command_name: aggregate
965
- database_name: *database_name
966
- result:
967
- success:
968
- -
969
- _id: "42"
970
- documentKey: "42"
971
- operationType: insert
972
- ns:
973
- db: *database_name
974
- coll: *collection_name
975
- fullDocument:
976
- x:
977
- $numberInt: "1"
978
- -
979
- description: "change stream resumes after RetryChangeStream"
980
- minServerVersion: "4.2"
981
- maxServerVersion: "4.2.99"
982
- failPoint:
983
- configureFailPoint: failCommand
984
- mode: { times: 1 }
985
- data:
986
- failCommands: ["getMore"]
987
- errorCode: 234
988
- closeConnection: false
989
- target: collection
990
- topology:
991
- - replicaset
992
- - sharded
993
- changeStreamPipeline: []
994
- changeStreamOptions: {}
995
- operations:
996
- -
997
- database: *database_name
998
- collection: *collection_name
999
- name: insertOne
1000
- arguments:
1001
- document:
1002
- x: 1
1003
- expectations:
1004
- -
1005
- command_started_event:
1006
- command:
1007
- aggregate: *collection_name
1008
- cursor: {}
1009
- pipeline:
1010
- -
1011
- $changeStream: {}
1012
- command_name: aggregate
1013
- database_name: *database_name
1014
- -
1015
- command_started_event:
1016
- command:
1017
- getMore: 42
1018
- collection: *collection_name
1019
- command_name: getMore
1020
- database_name: *database_name
1021
- -
1022
- command_started_event:
1023
- command:
1024
- aggregate: *collection_name
1025
- cursor: {}
1026
- pipeline:
1027
- -
1028
- $changeStream: {}
1029
- command_name: aggregate
1030
- database_name: *database_name
1031
- result:
1032
- success:
1033
- -
1034
- _id: "42"
1035
- documentKey: "42"
1036
- operationType: insert
1037
- ns:
1038
- db: *database_name
1039
- coll: *collection_name
1040
- fullDocument:
1041
- x:
1042
- $numberInt: "1"
1043
- -
1044
- description: "change stream resumes after FailedToSatisfyReadPreference"
1045
- minServerVersion: "4.2"
1046
- maxServerVersion: "4.2.99"
1047
- failPoint:
1048
- configureFailPoint: failCommand
1049
- mode: { times: 1 }
1050
- data:
1051
- failCommands: ["getMore"]
1052
- errorCode: 133
1053
- closeConnection: false
1054
- target: collection
1055
- topology:
1056
- - replicaset
1057
- - sharded
1058
- changeStreamPipeline: []
1059
- changeStreamOptions: {}
1060
- operations:
1061
- -
1062
- database: *database_name
1063
- collection: *collection_name
1064
- name: insertOne
1065
- arguments:
1066
- document:
1067
- x: 1
1068
- expectations:
1069
- -
1070
- command_started_event:
1071
- command:
1072
- aggregate: *collection_name
1073
- cursor: {}
1074
- pipeline:
1075
- -
1076
- $changeStream: {}
1077
- command_name: aggregate
1078
- database_name: *database_name
1079
- -
1080
- command_started_event:
1081
- command:
1082
- getMore: 42
1083
- collection: *collection_name
1084
- command_name: getMore
1085
- database_name: *database_name
1086
- -
1087
- command_started_event:
1088
- command:
1089
- aggregate: *collection_name
1090
- cursor: {}
1091
- pipeline:
1092
- -
1093
- $changeStream: {}
1094
- command_name: aggregate
1095
- database_name: *database_name
1096
- result:
1097
- success:
1098
- -
1099
- _id: "42"
1100
- documentKey: "42"
1101
- operationType: insert
1102
- ns:
1103
- db: *database_name
1104
- coll: *collection_name
1105
- fullDocument:
1106
- x:
1107
- $numberInt: "1"
1108
- -
1109
- # CursorNotFound is special-cased to be resumable regardless of server versions or error labels, so this test has
1110
- # no maxWireVersion.
1111
- description: "change stream resumes after CursorNotFound"
1112
- minServerVersion: "4.2"
1113
- failPoint:
1114
- configureFailPoint: failCommand
1115
- mode: { times: 1 }
1116
- data:
1117
- failCommands: ["getMore"]
1118
- errorCode: 43
1119
- closeConnection: false
1120
- target: collection
1121
- topology:
1122
- - replicaset
1123
- - sharded
1124
- changeStreamPipeline: []
1125
- changeStreamOptions: {}
1126
- operations:
1127
- -
1128
- database: *database_name
1129
- collection: *collection_name
1130
- name: insertOne
1131
- arguments:
1132
- document:
1133
- x: 1
1134
- expectations:
1135
- -
1136
- command_started_event:
1137
- command:
1138
- aggregate: *collection_name
1139
- cursor: {}
1140
- pipeline:
1141
- -
1142
- $changeStream: {}
1143
- command_name: aggregate
1144
- database_name: *database_name
1145
- -
1146
- command_started_event:
1147
- command:
1148
- getMore: 42
1149
- collection: *collection_name
1150
- command_name: getMore
1151
- database_name: *database_name
1152
- -
1153
- command_started_event:
1154
- command:
1155
- aggregate: *collection_name
1156
- cursor: {}
1157
- pipeline:
1158
- -
1159
- $changeStream: {}
1160
- command_name: aggregate
1161
- database_name: *database_name
1162
- result:
1163
- success:
1164
- -
1165
- _id: "42"
1166
- documentKey: "42"
1167
- operationType: insert
1168
- ns:
1169
- db: *database_name
1170
- coll: *collection_name
1171
- fullDocument:
1172
- x:
1173
- $numberInt: "1"