mongo 2.16.1 → 2.17.0

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 (96) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +1 -1
  4. data/lib/mongo/auth/aws/request.rb +0 -1
  5. data/lib/mongo/client.rb +4 -0
  6. data/lib/mongo/collection/view/aggregation.rb +62 -17
  7. data/lib/mongo/collection/view/builder/aggregation.rb +11 -13
  8. data/lib/mongo/collection/view/builder/map_reduce.rb +1 -1
  9. data/lib/mongo/collection/view/change_stream.rb +7 -3
  10. data/lib/mongo/collection/view/iterable.rb +2 -3
  11. data/lib/mongo/collection/view/map_reduce.rb +2 -0
  12. data/lib/mongo/collection/view/readable.rb +24 -1
  13. data/lib/mongo/collection/view/writable.rb +23 -0
  14. data/lib/mongo/collection.rb +21 -1
  15. data/lib/mongo/database/view.rb +4 -2
  16. data/lib/mongo/database.rb +6 -6
  17. data/lib/mongo/error/snapshot_session_invalid_server_version.rb +31 -0
  18. data/lib/mongo/error/snapshot_session_transaction_prohibited.rb +30 -0
  19. data/lib/mongo/error.rb +2 -0
  20. data/lib/mongo/operation/delete/op_msg.rb +2 -1
  21. data/lib/mongo/operation/find/builder/command.rb +1 -0
  22. data/lib/mongo/operation/result.rb +6 -0
  23. data/lib/mongo/operation/shared/executable.rb +4 -0
  24. data/lib/mongo/operation/shared/sessions_supported.rb +18 -2
  25. data/lib/mongo/operation/update/op_msg.rb +2 -1
  26. data/lib/mongo/server/description/features.rb +3 -1
  27. data/lib/mongo/server_selector/base.rb +26 -4
  28. data/lib/mongo/session.rb +19 -0
  29. data/lib/mongo/socket/ocsp_cache.rb +2 -3
  30. data/lib/mongo/socket.rb +1 -5
  31. data/lib/mongo/utils.rb +0 -6
  32. data/lib/mongo/version.rb +1 -1
  33. data/mongo.gemspec +1 -1
  34. data/spec/integration/read_preference_spec.rb +16 -12
  35. data/spec/mongo/collection/view/aggregation_spec.rb +71 -95
  36. data/spec/mongo/collection/view/change_stream_spec.rb +1 -1
  37. data/spec/mongo/collection/view/map_reduce_spec.rb +14 -1
  38. data/spec/mongo/operation/read_preference_op_msg_spec.rb +24 -1
  39. data/spec/mongo/server_selector_spec.rb +136 -15
  40. data/spec/mongo/socket/ssl_spec.rb +26 -58
  41. data/spec/mongo/utils_spec.rb +0 -14
  42. data/spec/runners/crud/verifier.rb +1 -2
  43. data/spec/runners/unified/assertions.rb +3 -1
  44. data/spec/runners/unified/crud_operations.rb +77 -23
  45. data/spec/runners/unified/ddl_operations.rb +29 -1
  46. data/spec/runners/unified/entity_map.rb +3 -3
  47. data/spec/runners/unified/support_operations.rb +6 -1
  48. data/spec/runners/unified/test.rb +15 -3
  49. data/spec/spec_tests/data/crud_unified/aggregate-let.yml +138 -0
  50. data/spec/spec_tests/data/crud_unified/aggregate-write-readPreference.yml +155 -0
  51. data/spec/spec_tests/data/crud_unified/db-aggregate-write-readPreference.yml +151 -0
  52. data/spec/spec_tests/data/crud_unified/deleteMany-let.yml +91 -0
  53. data/spec/spec_tests/data/crud_unified/deleteOne-let.yml +89 -0
  54. data/spec/spec_tests/data/crud_unified/find-let.yml +71 -0
  55. data/spec/spec_tests/data/crud_unified/findOneAndDelete-let.yml +88 -0
  56. data/spec/spec_tests/data/crud_unified/findOneAndReplace-let.yml +94 -0
  57. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-let.yml +96 -0
  58. data/spec/spec_tests/data/crud_unified/updateMany-let.yml +103 -0
  59. data/spec/spec_tests/data/crud_unified/updateOne-let.yml +98 -0
  60. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/DefaultNoMaxStaleness.yml +2 -2
  61. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/LastUpdateTime.yml +3 -3
  62. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Nearest.yml +3 -3
  63. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Nearest2.yml +3 -3
  64. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/PrimaryPreferred.yml +2 -2
  65. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/PrimaryPreferred_tags.yml +2 -2
  66. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Secondary.yml +4 -4
  67. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/SecondaryPreferred.yml +2 -2
  68. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/SecondaryPreferred_tags.yml +4 -4
  69. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/ZeroMaxStaleness.yml +2 -2
  70. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/DefaultNoMaxStaleness.yml +2 -2
  71. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LastUpdateTime.yml +3 -3
  72. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LongHeartbeat.yml +2 -2
  73. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LongHeartbeat2.yml +2 -2
  74. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/MaxStalenessTooSmall.yml +2 -2
  75. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/MaxStalenessWithModePrimary.yml +2 -2
  76. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest.yml +3 -3
  77. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest2.yml +3 -3
  78. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest_tags.yml +2 -2
  79. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/PrimaryPreferred.yml +2 -2
  80. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred.yml +2 -2
  81. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred_tags.yml +5 -5
  82. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred_tags2.yml +3 -3
  83. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Secondary_tags.yml +5 -5
  84. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Secondary_tags2.yml +3 -3
  85. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/ZeroMaxStaleness.yml +2 -2
  86. data/spec/spec_tests/data/max_staleness/Sharded/SmallMaxStaleness.yml +2 -2
  87. data/spec/spec_tests/data/max_staleness/Single/SmallMaxStaleness.yml +1 -1
  88. data/spec/spec_tests/data/max_staleness/Unknown/SmallMaxStaleness.yml +1 -1
  89. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-not-supported-client-error.yml +69 -0
  90. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-not-supported-server-error.yml +102 -0
  91. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-unsupported-ops.yml +258 -0
  92. data/spec/spec_tests/data/sessions_unified/snapshot-sessions.yml +482 -0
  93. data/spec/spec_tests/sessions_unified_spec.rb +13 -0
  94. data.tar.gz.sig +0 -0
  95. metadata +36 -2
  96. metadata.gz.sig +0 -0
@@ -8,14 +8,14 @@ topology_description:
8
8
  type: RSSecondary
9
9
  avg_rtt_ms: 5
10
10
  lastUpdateTime: 0
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
13
13
  - &2
14
14
  address: b:27017
15
15
  type: RSSecondary
16
16
  avg_rtt_ms: 5
17
17
  lastUpdateTime: 0
18
- maxWireVersion: 4 # Incompatible.
18
+ maxWireVersion: 6
19
19
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
20
20
  read_preference:
21
21
  mode: Nearest
@@ -8,14 +8,14 @@ topology_description:
8
8
  type: RSPrimary
9
9
  avg_rtt_ms: 50 # Too far.
10
10
  lastUpdateTime: 0
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  lastWrite: {lastWriteDate: {$numberLong: "1000001"}}
13
13
  - &2
14
14
  address: b:27017
15
15
  type: RSSecondary
16
16
  avg_rtt_ms: 5
17
17
  lastUpdateTime: 0
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Very stale.
20
20
  read_preference:
21
21
  mode: Nearest
@@ -8,7 +8,7 @@ topology_description:
8
8
  avg_rtt_ms: 50 # Too far.
9
9
  lastUpdateTime: 1
10
10
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  - &2
13
13
  address: b:27017
14
14
  type: RSSecondary
@@ -17,14 +17,14 @@ topology_description:
17
17
  # Updated 125 sec after primary, so 125 sec stale.
18
18
  # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
19
19
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
20
- maxWireVersion: 5
20
+ maxWireVersion: 6
21
21
  - &3
22
22
  address: c:27017
23
23
  type: RSSecondary
24
24
  avg_rtt_ms: 5
25
25
  lastUpdateTime: 125001
26
26
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
27
- maxWireVersion: 5
27
+ maxWireVersion: 6
28
28
  read_preference:
29
29
  mode: Nearest
30
30
  maxStalenessSeconds: 150
@@ -10,14 +10,14 @@ topology_description:
10
10
  type: RSPrimary
11
11
  avg_rtt_ms: 5
12
12
  lastUpdateTime: 0
13
- maxWireVersion: 5
13
+ maxWireVersion: 6
14
14
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
15
15
  - &2
16
16
  address: b:27017
17
17
  type: RSSecondary
18
18
  avg_rtt_ms: 50 # Too far.
19
19
  lastUpdateTime: 0
20
- maxWireVersion: 5
20
+ maxWireVersion: 6
21
21
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
22
22
  read_preference:
23
23
  mode: Nearest
@@ -10,14 +10,14 @@ topology_description:
10
10
  type: RSPrimary
11
11
  avg_rtt_ms: 5
12
12
  lastUpdateTime: 0
13
- maxWireVersion: 5
13
+ maxWireVersion: 6
14
14
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
15
15
  - &2
16
16
  address: b:27017
17
17
  type: RSSecondary
18
18
  avg_rtt_ms: 5
19
19
  lastUpdateTime: 0
20
- maxWireVersion: 5
20
+ maxWireVersion: 6
21
21
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
22
22
  read_preference:
23
23
  mode: Nearest
@@ -11,14 +11,14 @@ topology_description:
11
11
  type: RSPrimary
12
12
  avg_rtt_ms: 5
13
13
  lastUpdateTime: 0
14
- maxWireVersion: 5
14
+ maxWireVersion: 6
15
15
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
16
16
  - &2
17
17
  address: b:27017
18
18
  type: RSSecondary
19
19
  avg_rtt_ms: 5
20
20
  lastUpdateTime: 0
21
- maxWireVersion: 5
21
+ maxWireVersion: 6
22
22
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
23
23
  read_preference:
24
24
  mode: Nearest
@@ -9,14 +9,14 @@ topology_description:
9
9
  type: RSPrimary
10
10
  avg_rtt_ms: 5
11
11
  lastUpdateTime: 0
12
- maxWireVersion: 5
12
+ maxWireVersion: 6
13
13
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
14
14
  - &2
15
15
  address: b:27017
16
16
  type: RSSecondary
17
17
  avg_rtt_ms: 5
18
18
  lastUpdateTime: 0
19
- maxWireVersion: 5
19
+ maxWireVersion: 6
20
20
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
21
21
  read_preference:
22
22
  maxStalenessSeconds: 120
@@ -8,21 +8,21 @@ topology_description:
8
8
  avg_rtt_ms: 5
9
9
  lastUpdateTime: 0
10
10
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  - &2
13
13
  address: b:27017
14
14
  type: RSSecondary
15
15
  avg_rtt_ms: 50 # Too far.
16
16
  lastUpdateTime: 0
17
17
  lastWrite: {lastWriteDate: {$numberLong: "2"}} # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  - &3
20
20
  address: c:27017
21
21
  avg_rtt_ms: 5
22
22
  lastUpdateTime: 0
23
23
  type: RSSecondary
24
24
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
25
- maxWireVersion: 5
25
+ maxWireVersion: 6
26
26
  read_preference:
27
27
  mode: Nearest
28
28
  maxStalenessSeconds: 150
@@ -8,21 +8,21 @@ topology_description:
8
8
  avg_rtt_ms: 50 # Too far.
9
9
  lastUpdateTime: 0
10
10
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  - &2
13
13
  address: b:27017
14
14
  type: RSSecondary
15
15
  avg_rtt_ms: 5
16
16
  lastUpdateTime: 0
17
17
  lastWrite: {lastWriteDate: {$numberLong: "2"}} # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  - &3
20
20
  address: c:27017
21
21
  avg_rtt_ms: 5
22
22
  lastUpdateTime: 0
23
23
  type: RSSecondary
24
24
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
25
- maxWireVersion: 5
25
+ maxWireVersion: 6
26
26
  read_preference:
27
27
  mode: Nearest
28
28
  maxStalenessSeconds: 150
@@ -12,7 +12,7 @@ topology_description:
12
12
  avg_rtt_ms: 5
13
13
  lastUpdateTime: 0
14
14
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
15
- maxWireVersion: 5
15
+ maxWireVersion: 6
16
16
  tags:
17
17
  data_center: tokyo
18
18
  - &2
@@ -21,7 +21,7 @@ topology_description:
21
21
  avg_rtt_ms: 5
22
22
  lastUpdateTime: 0
23
23
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
24
- maxWireVersion: 5
24
+ maxWireVersion: 6
25
25
  tags:
26
26
  data_center: nyc
27
27
  read_preference:
@@ -9,14 +9,14 @@ topology_description:
9
9
  type: RSPrimary
10
10
  avg_rtt_ms: 5
11
11
  lastUpdateTime: 0
12
- maxWireVersion: 5
12
+ maxWireVersion: 6
13
13
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
14
14
  - &2
15
15
  address: b:27017
16
16
  type: RSSecondary
17
17
  avg_rtt_ms: 5
18
18
  lastUpdateTime: 0
19
- maxWireVersion: 5
19
+ maxWireVersion: 6
20
20
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
21
21
  read_preference:
22
22
  mode: PrimaryPreferred
@@ -8,14 +8,14 @@ topology_description:
8
8
  type: RSPrimary
9
9
  avg_rtt_ms: 5
10
10
  lastUpdateTime: 0
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  lastWrite: {lastWriteDate: {$numberLong: "1000001"}}
13
13
  - &2
14
14
  address: b:27017
15
15
  type: RSSecondary
16
16
  avg_rtt_ms: 5
17
17
  lastUpdateTime: 0
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Very stale.
20
20
  read_preference:
21
21
  mode: SecondaryPreferred
@@ -9,14 +9,14 @@ topology_description:
9
9
  type: RSPrimary
10
10
  avg_rtt_ms: 5
11
11
  lastUpdateTime: 0
12
- maxWireVersion: 5
12
+ maxWireVersion: 6
13
13
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
14
14
  - &2
15
15
  address: b:27017
16
16
  type: RSSecondary
17
17
  avg_rtt_ms: 5
18
18
  lastUpdateTime: 0
19
- maxWireVersion: 5
19
+ maxWireVersion: 6
20
20
  lastWrite: {lastWriteDate: {$numberLong: "2"}} # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
21
21
  tags:
22
22
  data_center: nyc
@@ -25,7 +25,7 @@ topology_description:
25
25
  type: RSSecondary
26
26
  avg_rtt_ms: 50 # Too far.
27
27
  lastUpdateTime: 1
28
- maxWireVersion: 5
28
+ maxWireVersion: 6
29
29
  lastWrite: {lastWriteDate: {$numberLong: "1000001"}} # Not used in estimate since we have a primary.
30
30
  tags:
31
31
  data_center: nyc
@@ -34,7 +34,7 @@ topology_description:
34
34
  type: RSSecondary
35
35
  avg_rtt_ms: 5
36
36
  lastUpdateTime: 0
37
- maxWireVersion: 5
37
+ maxWireVersion: 6
38
38
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
39
39
  tags:
40
40
  data_center: nyc
@@ -43,7 +43,7 @@ topology_description:
43
43
  type: RSSecondary
44
44
  avg_rtt_ms: 5
45
45
  lastUpdateTime: 0
46
- maxWireVersion: 5
46
+ maxWireVersion: 6
47
47
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
48
48
  tags:
49
49
  data_center: tokyo # No match.
@@ -12,14 +12,14 @@ topology_description:
12
12
  avg_rtt_ms: 5
13
13
  lastUpdateTime: 0
14
14
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
15
- maxWireVersion: 5
15
+ maxWireVersion: 6
16
16
  - &2
17
17
  address: b:27017
18
18
  type: RSSecondary
19
19
  avg_rtt_ms: 5
20
20
  lastUpdateTime: 0
21
21
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
22
- maxWireVersion: 5
22
+ maxWireVersion: 6
23
23
  tags:
24
24
  data_center: tokyo
25
25
  - &3
@@ -28,7 +28,7 @@ topology_description:
28
28
  avg_rtt_ms: 5
29
29
  lastUpdateTime: 0
30
30
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
31
- maxWireVersion: 5
31
+ maxWireVersion: 6
32
32
  tags:
33
33
  data_center: nyc
34
34
  read_preference:
@@ -9,14 +9,14 @@ topology_description:
9
9
  type: RSPrimary
10
10
  avg_rtt_ms: 5
11
11
  lastUpdateTime: 0
12
- maxWireVersion: 5
12
+ maxWireVersion: 6
13
13
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
14
14
  - &2
15
15
  address: b:27017
16
16
  type: RSSecondary
17
17
  avg_rtt_ms: 5
18
18
  lastUpdateTime: 0
19
- maxWireVersion: 5
19
+ maxWireVersion: 6
20
20
  lastWrite: {lastWriteDate: {$numberLong: "2"}} # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
21
21
  tags:
22
22
  data_center: nyc
@@ -25,7 +25,7 @@ topology_description:
25
25
  type: RSSecondary
26
26
  avg_rtt_ms: 50 # Too far.
27
27
  lastUpdateTime: 1
28
- maxWireVersion: 5
28
+ maxWireVersion: 6
29
29
  lastWrite: {lastWriteDate: {$numberLong: "1000001"}} # Not used in estimate since we have a primary.
30
30
  tags:
31
31
  data_center: nyc
@@ -34,7 +34,7 @@ topology_description:
34
34
  type: RSSecondary
35
35
  avg_rtt_ms: 5
36
36
  lastUpdateTime: 0
37
- maxWireVersion: 5
37
+ maxWireVersion: 6
38
38
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
39
39
  tags:
40
40
  data_center: nyc
@@ -43,7 +43,7 @@ topology_description:
43
43
  type: RSSecondary
44
44
  avg_rtt_ms: 5
45
45
  lastUpdateTime: 0
46
- maxWireVersion: 5
46
+ maxWireVersion: 6
47
47
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
48
48
  tags:
49
49
  data_center: tokyo # No match.
@@ -12,14 +12,14 @@ topology_description:
12
12
  avg_rtt_ms: 5
13
13
  lastUpdateTime: 0
14
14
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
15
- maxWireVersion: 5
15
+ maxWireVersion: 6
16
16
  - &2
17
17
  address: b:27017
18
18
  type: RSSecondary
19
19
  avg_rtt_ms: 5
20
20
  lastUpdateTime: 0
21
21
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
22
- maxWireVersion: 5
22
+ maxWireVersion: 6
23
23
  tags:
24
24
  data_center: tokyo
25
25
  - &3
@@ -28,7 +28,7 @@ topology_description:
28
28
  avg_rtt_ms: 5
29
29
  lastUpdateTime: 0
30
30
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
31
- maxWireVersion: 5
31
+ maxWireVersion: 6
32
32
  tags:
33
33
  data_center: nyc
34
34
  read_preference:
@@ -8,14 +8,14 @@ topology_description:
8
8
  type: RSPrimary
9
9
  avg_rtt_ms: 5
10
10
  lastUpdateTime: 0
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
13
13
  - &2
14
14
  address: b:27017
15
15
  type: RSSecondary
16
16
  avg_rtt_ms: 5
17
17
  lastUpdateTime: 0
18
- maxWireVersion: 4 # Incompatible.
18
+ maxWireVersion: 6
19
19
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
20
20
  read_preference:
21
21
  mode: Nearest
@@ -9,14 +9,14 @@ topology_description:
9
9
  type: Mongos
10
10
  avg_rtt_ms: 5
11
11
  lastUpdateTime: 0
12
- maxWireVersion: 5
12
+ maxWireVersion: 6
13
13
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
14
14
  - &2
15
15
  address: b:27017
16
16
  type: Mongos
17
17
  avg_rtt_ms: 50 # Too far.
18
18
  lastUpdateTime: 0
19
- maxWireVersion: 5
19
+ maxWireVersion: 6
20
20
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
21
21
  read_preference:
22
22
  mode: Nearest
@@ -9,7 +9,7 @@ topology_description:
9
9
  type: Standalone
10
10
  avg_rtt_ms: 5
11
11
  lastUpdateTime: 0
12
- maxWireVersion: 5
12
+ maxWireVersion: 6
13
13
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
14
14
  read_preference:
15
15
  mode: Nearest
@@ -7,7 +7,7 @@ topology_description:
7
7
  - &1
8
8
  address: a:27017
9
9
  type: Unknown
10
- maxWireVersion: 5
10
+ maxWireVersion: 6
11
11
  read_preference:
12
12
  mode: Nearest
13
13
  maxStalenessSeconds: 1
@@ -0,0 +1,69 @@
1
+ description: snapshot-sessions-not-supported-client-error
2
+
3
+ schemaVersion: "1.0"
4
+
5
+ runOnRequirements:
6
+ - minServerVersion: "3.6"
7
+ maxServerVersion: "4.4.99"
8
+
9
+ createEntities:
10
+ - client:
11
+ id: &client0 client0
12
+ observeEvents: [ commandStartedEvent, commandFailedEvent ]
13
+ - database:
14
+ id: &database0Name database0
15
+ client: *client0
16
+ databaseName: *database0Name
17
+ - collection:
18
+ id: &collection0Name collection0
19
+ database: *database0Name
20
+ collectionName: *collection0Name
21
+ - session:
22
+ id: session0
23
+ client: client0
24
+ sessionOptions:
25
+ snapshot: true
26
+
27
+ initialData:
28
+ - collectionName: *collection0Name
29
+ databaseName: *database0Name
30
+ documents:
31
+ - { _id: 1, x: 11 }
32
+
33
+ tests:
34
+ - description: Client error on find with snapshot
35
+ operations:
36
+ - name: find
37
+ object: collection0
38
+ arguments:
39
+ session: session0
40
+ filter: {}
41
+ expectError:
42
+ isClientError: true
43
+ errorContains: Snapshot reads require MongoDB 5.0 or later
44
+ expectEvents: []
45
+
46
+ - description: Client error on aggregate with snapshot
47
+ operations:
48
+ - name: aggregate
49
+ object: collection0
50
+ arguments:
51
+ session: session0
52
+ pipeline: []
53
+ expectError:
54
+ isClientError: true
55
+ errorContains: Snapshot reads require MongoDB 5.0 or later
56
+ expectEvents: []
57
+
58
+ - description: Client error on distinct with snapshot
59
+ operations:
60
+ - name: distinct
61
+ object: collection0
62
+ arguments:
63
+ fieldName: x
64
+ filter: {}
65
+ session: session0
66
+ expectError:
67
+ isClientError: true
68
+ errorContains: Snapshot reads require MongoDB 5.0 or later
69
+ expectEvents: []
@@ -0,0 +1,102 @@
1
+ description: snapshot-sessions-not-supported-server-error
2
+
3
+ schemaVersion: "1.0"
4
+
5
+ runOnRequirements:
6
+ - minServerVersion: "5.0"
7
+ topologies: [ single ]
8
+
9
+ createEntities:
10
+ - client:
11
+ id: &client0 client0
12
+ observeEvents: [ commandStartedEvent, commandFailedEvent ]
13
+ - database:
14
+ id: &database0Name database0
15
+ client: *client0
16
+ databaseName: *database0Name
17
+ - collection:
18
+ id: &collection0Name collection0
19
+ database: *database0Name
20
+ collectionName: *collection0Name
21
+ - session:
22
+ id: session0
23
+ client: client0
24
+ sessionOptions:
25
+ snapshot: true
26
+
27
+ initialData:
28
+ - collectionName: *collection0Name
29
+ databaseName: *database0Name
30
+ documents:
31
+ - { _id: 1, x: 11 }
32
+
33
+ tests:
34
+ - description: Server returns an error on find with snapshot
35
+ operations:
36
+ - name: find
37
+ object: collection0
38
+ arguments:
39
+ session: session0
40
+ filter: {}
41
+ expectError:
42
+ isError: true
43
+ isClientError: false
44
+ expectEvents:
45
+ - client: client0
46
+ events:
47
+ - commandStartedEvent:
48
+ command:
49
+ find: collection0
50
+ readConcern:
51
+ level: snapshot
52
+ atClusterTime:
53
+ "$$exists": false
54
+ - commandFailedEvent:
55
+ commandName: find
56
+
57
+ - description: Server returns an error on aggregate with snapshot
58
+ operations:
59
+ - name: aggregate
60
+ object: collection0
61
+ arguments:
62
+ session: session0
63
+ pipeline: []
64
+ expectError:
65
+ isError: true
66
+ isClientError: false
67
+ expectEvents:
68
+ - client: client0
69
+ events:
70
+ - commandStartedEvent:
71
+ command:
72
+ aggregate: collection0
73
+ readConcern:
74
+ level: snapshot
75
+ atClusterTime:
76
+ "$$exists": false
77
+ - commandFailedEvent:
78
+ commandName: aggregate
79
+
80
+ - description: Server returns an error on distinct with snapshot
81
+ operations:
82
+ - name: distinct
83
+ object: collection0
84
+ arguments:
85
+ fieldName: x
86
+ filter: {}
87
+ session: session0
88
+ expectError:
89
+ isError: true
90
+ isClientError: false
91
+ expectEvents:
92
+ - client: client0
93
+ events:
94
+ - commandStartedEvent:
95
+ command:
96
+ distinct: collection0
97
+ readConcern:
98
+ level: snapshot
99
+ atClusterTime:
100
+ "$$exists": false
101
+ - commandFailedEvent:
102
+ commandName: distinct