mongo 2.16.1 → 2.17.0

Sign up to get free protection for your applications and to get access to all the features.
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