mongo 2.11.1 → 2.11.2

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 (50) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +2 -1
  3. data.tar.gz.sig +0 -0
  4. data/Rakefile +24 -0
  5. data/lib/mongo/auth.rb +30 -10
  6. data/lib/mongo/auth/cr.rb +1 -0
  7. data/lib/mongo/auth/cr/conversation.rb +13 -13
  8. data/lib/mongo/auth/ldap.rb +2 -1
  9. data/lib/mongo/auth/ldap/conversation.rb +9 -12
  10. data/lib/mongo/auth/scram.rb +1 -0
  11. data/lib/mongo/auth/scram/conversation.rb +36 -27
  12. data/lib/mongo/auth/x509.rb +2 -1
  13. data/lib/mongo/auth/x509/conversation.rb +9 -9
  14. data/lib/mongo/client.rb +17 -6
  15. data/lib/mongo/cluster.rb +65 -49
  16. data/lib/mongo/cluster/sdam_flow.rb +87 -3
  17. data/lib/mongo/database.rb +1 -1
  18. data/lib/mongo/server.rb +13 -6
  19. data/lib/mongo/server/connection.rb +12 -4
  20. data/lib/mongo/server/connection_base.rb +7 -4
  21. data/lib/mongo/server/description.rb +34 -21
  22. data/lib/mongo/session.rb +10 -10
  23. data/lib/mongo/version.rb +1 -1
  24. data/spec/README.md +13 -0
  25. data/spec/integration/auth_spec.rb +27 -8
  26. data/spec/integration/client_construction_spec.rb +14 -0
  27. data/spec/mongo/auth/ldap/conversation_spec.rb +1 -1
  28. data/spec/mongo/auth/scram/conversation_spec.rb +23 -14
  29. data/spec/mongo/auth/x509/conversation_spec.rb +1 -1
  30. data/spec/mongo/client_construction_spec.rb +1 -21
  31. data/spec/mongo/cluster_spec.rb +38 -0
  32. data/spec/mongo/collection/view/map_reduce_spec.rb +1 -1
  33. data/spec/mongo/server/connection_spec.rb +67 -0
  34. data/spec/runners/sdam/verifier.rb +6 -3
  35. data/spec/spec_tests/data/sdam/rs/primary_address_change.yml +29 -0
  36. data/spec/spec_tests/data/sdam/rs/primary_mismatched_me.yml +27 -23
  37. data/spec/spec_tests/data/sdam/rs/primary_to_no_primary_mismatched_me.yml +56 -79
  38. data/spec/spec_tests/data/sdam/sharded/primary_address_change.yml +21 -0
  39. data/spec/spec_tests/data/sdam/sharded/primary_mismatched_me.yml +22 -0
  40. data/spec/spec_tests/data/sdam/single/primary_address_change.yml +24 -0
  41. data/spec/spec_tests/data/sdam/single/primary_mismatched_me.yml +25 -0
  42. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_me_mismatch.yml +159 -0
  43. data/spec/spec_tests/data/sdam_monitoring/{replica_set_other_seed.yml → replica_set_with_primary_change.yml} +97 -101
  44. data/spec/spec_tests/data/sdam_monitoring/replica_set_with_primary_removal.yml +22 -18
  45. data/spec/spec_tests/data/sdam_monitoring/standalone_to_rs_with_me_mismatch.yml +90 -0
  46. data/spec/support/cluster_config.rb +36 -0
  47. data/spec/support/constraints.rb +18 -18
  48. data/spec/support/server_discovery_and_monitoring.rb +2 -0
  49. metadata +18 -4
  50. metadata.gz.sig +0 -0
@@ -1,23 +1,10 @@
1
1
  description: "Monitoring a topology that is a replica set with primary removal"
2
2
  uri: "mongodb://a,b"
3
3
  phases:
4
- # phase 1 - discover topology
5
- -
6
- responses:
7
- -
8
- - "a:27017"
9
- -
10
- ok: 1
11
- ismaster: true
12
- setName: "rs"
13
- setVersion: 1
14
- primary: "a:27017"
15
- hosts:
16
- - "a:27017"
17
- minWireVersion: 0
18
- maxWireVersion: 4
19
- outcome:
20
- events:
4
+ -
5
+ responses: []
6
+ outcome:
7
+ events:
21
8
  -
22
9
  topology_opening_event:
23
10
  topologyId: "42"
@@ -50,6 +37,23 @@ phases:
50
37
  server_opening_event:
51
38
  topologyId: "42"
52
39
  address: "b:27017"
40
+ # phase 1 - discover topology
41
+ -
42
+ responses:
43
+ -
44
+ - "a:27017"
45
+ -
46
+ ok: 1
47
+ ismaster: true
48
+ setName: "rs"
49
+ setVersion: 1
50
+ primary: "a:27017"
51
+ hosts:
52
+ - "a:27017"
53
+ minWireVersion: 0
54
+ maxWireVersion: 4
55
+ outcome:
56
+ events:
53
57
  -
54
58
  server_description_changed_event:
55
59
  topologyId: "42"
@@ -144,7 +148,7 @@ phases:
144
148
  passives: []
145
149
  primary: "c:27017"
146
150
  setName: "wrong"
147
- type: "RSOther"
151
+ type: "RSPrimary"
148
152
  -
149
153
  server_closed_event:
150
154
  topologyId: "42"
@@ -0,0 +1,90 @@
1
+ description: "Standalone connection to a replica set node with a me mismatch"
2
+ uri: "mongodb://a/?connect=direct"
3
+ phases:
4
+ -
5
+ responses: []
6
+ outcome:
7
+ events:
8
+ -
9
+ topology_opening_event:
10
+ topologyId: "42"
11
+ -
12
+ topology_description_changed_event:
13
+ topologyId: "42"
14
+ previousDescription:
15
+ topologyType: "Unknown"
16
+ servers: []
17
+ newDescription:
18
+ topologyType: "Single"
19
+ servers:
20
+ -
21
+ address: "a:27017"
22
+ arbiters: []
23
+ hosts: []
24
+ passives: []
25
+ type: "Unknown"
26
+ -
27
+ server_opening_event:
28
+ topologyId: "42"
29
+ address: "a:27017"
30
+ # phase 1 - server is a primary with mismatched me
31
+ -
32
+ responses:
33
+ -
34
+ - "a:27017"
35
+ -
36
+ ok: 1
37
+ ismaster: true
38
+ setName: "rs"
39
+ setVersion: 1
40
+ primary: "aa:27017"
41
+ me: "aa:27017"
42
+ hosts:
43
+ - "aa:27017"
44
+ minWireVersion: 0
45
+ maxWireVersion: 4
46
+ outcome:
47
+ events:
48
+ -
49
+ server_description_changed_event:
50
+ topologyId: "42"
51
+ address: "a:27017"
52
+ previousDescription:
53
+ address: "a:27017"
54
+ arbiters: []
55
+ hosts: []
56
+ passives: []
57
+ type: "Unknown"
58
+ newDescription:
59
+ address: "a:27017"
60
+ arbiters: []
61
+ hosts:
62
+ - "aa:27017"
63
+ passives: []
64
+ primary: "aa:27017"
65
+ setName: "rs"
66
+ type: "RSPrimary"
67
+ -
68
+ topology_description_changed_event:
69
+ topologyId: "42"
70
+ previousDescription:
71
+ topologyType: "Single"
72
+ servers:
73
+ -
74
+ address: "a:27017"
75
+ arbiters: []
76
+ hosts: []
77
+ passives: []
78
+ type: "Unknown"
79
+ newDescription:
80
+ topologyType: "Single"
81
+ servers:
82
+ -
83
+ address: "a:27017"
84
+ arbiters: []
85
+ hosts:
86
+ - "aa:27017"
87
+ passives: []
88
+ primary: "aa:27017"
89
+ setName: "rs"
90
+ type: "RSPrimary"
@@ -2,6 +2,7 @@ require 'singleton'
2
2
 
3
3
  class ClusterConfig
4
4
  include Singleton
5
+ include RSpec::Core::Pending
5
6
 
6
7
  def single_server?
7
8
  determine_cluster_config
@@ -114,6 +115,41 @@ class ClusterConfig
114
115
  end
115
116
  end
116
117
 
118
+ # This method returns an alternate address for connecting to the configured
119
+ # deployment. For example, if the replica set is configured with nodes at
120
+ # of localhost:27017 and so on, this method will return 127.0.0.:27017.
121
+ #
122
+ # Note that the "alternate" refers to replica set configuration, not the
123
+ # addresses specified in test suite configuration. If the deployment topology
124
+ # is not a replica set, "alternate" refers to test suite configuration as
125
+ # this is the only configuration available.
126
+ def alternate_address
127
+ @alternate_address ||= begin
128
+ address = primary_address_host
129
+ str = case address
130
+ when '127.0.0.1'
131
+ 'localhost'
132
+ when /^(\d+\.){3}\d+$/
133
+ skip 'This test requires a hostname or 127.0.0.1 as address'
134
+ else
135
+ # We don't know if mongod is listening on ipv4 or ipv6, in principle.
136
+ # Our tests use ipv4, so hardcode that for now.
137
+ # To support both we need to try both addresses which will make this
138
+ # test more complicated.
139
+ #
140
+ # JRuby chokes on primary_address_port as the port (e.g. 27017).
141
+ # Since the port does not actually matter, use a common port like 80.
142
+ resolved_address = Addrinfo.getaddrinfo(address, 80, Socket::PF_INET).first.ip_address
143
+ if resolved_address.include?(':')
144
+ "[#{resolved_address}]"
145
+ else
146
+ resolved_address
147
+ end
148
+ end + ":#{primary_address_port}"
149
+ Mongo::Address.new(str)
150
+ end
151
+ end
152
+
117
153
  private
118
154
 
119
155
  def determine_cluster_config
@@ -4,7 +4,7 @@ module Constraints
4
4
  raise ArgumentError, "Version can only be major.minor: #{version}"
5
5
  end
6
6
 
7
- before do
7
+ before(:all) do
8
8
  if version > ClusterConfig.instance.server_version
9
9
  skip "Server version #{version} or higher required, we have #{ClusterConfig.instance.server_version}"
10
10
  end
@@ -16,7 +16,7 @@ module Constraints
16
16
  raise ArgumentError, "Version can only be major.minor: #{version}"
17
17
  end
18
18
 
19
- before do
19
+ before(:all) do
20
20
  if version < ClusterConfig.instance.short_server_version
21
21
  skip "Server version #{version} or lower required, we have #{ClusterConfig.instance.server_version}"
22
22
  end
@@ -28,7 +28,7 @@ module Constraints
28
28
  raise ArgumentError, "FCV can only be major.minor: #{version}"
29
29
  end
30
30
 
31
- before do
31
+ before(:all) do
32
32
  unless ClusterConfig.instance.fcv_ish >= version
33
33
  skip "FCV #{version} or higher required, we have #{ClusterConfig.instance.fcv_ish} (server #{ClusterConfig.instance.server_version})"
34
34
  end
@@ -40,7 +40,7 @@ module Constraints
40
40
  raise ArgumentError, "Version can only be major.minor: #{version}"
41
41
  end
42
42
 
43
- before do
43
+ before(:all) do
44
44
  if version < ClusterConfig.instance.fcv_ish
45
45
  skip "FCV #{version} or lower required, we have #{ClusterConfig.instance.fcv_ish} (server #{ClusterConfig.instance.server_version})"
46
46
  end
@@ -52,7 +52,7 @@ module Constraints
52
52
  unless invalid_topologies.empty?
53
53
  raise ArgumentError, "Invalid topologies requested: #{invalid_topologies.join(', ')}"
54
54
  end
55
- before do
55
+ before(:all) do
56
56
  unless topologies.include?(topology = ClusterConfig.instance.topology)
57
57
  skip "Topology #{topologies.join(' or ')} required, we have #{topology}"
58
58
  end
@@ -73,7 +73,7 @@ module Constraints
73
73
  end
74
74
 
75
75
  def require_tls
76
- before do
76
+ before(:all) do
77
77
  unless SpecConfig.instance.ssl?
78
78
  skip "SSL not enabled"
79
79
  end
@@ -81,7 +81,7 @@ module Constraints
81
81
  end
82
82
 
83
83
  def require_no_tls
84
- before do
84
+ before(:all) do
85
85
  if SpecConfig.instance.ssl?
86
86
  skip "SSL enabled"
87
87
  end
@@ -93,7 +93,7 @@ module Constraints
93
93
  end
94
94
 
95
95
  def require_no_retry_writes
96
- before do
96
+ before(:all) do
97
97
  if SpecConfig.instance.retry_writes?
98
98
  skip "Retry writes is enabled"
99
99
  end
@@ -101,7 +101,7 @@ module Constraints
101
101
  end
102
102
 
103
103
  def require_compression
104
- before do
104
+ before(:all) do
105
105
  if SpecConfig.instance.compressors.nil?
106
106
  skip "Compression is not enabled"
107
107
  end
@@ -109,7 +109,7 @@ module Constraints
109
109
  end
110
110
 
111
111
  def require_no_compression
112
- before do
112
+ before(:all) do
113
113
  if SpecConfig.instance.compressors
114
114
  skip "Compression is enabled"
115
115
  end
@@ -117,7 +117,7 @@ module Constraints
117
117
  end
118
118
 
119
119
  def ruby_version_gte(version)
120
- before do
120
+ before(:all) do
121
121
  if RUBY_VERSION < version
122
122
  skip "Ruby version #{version} or higher required"
123
123
  end
@@ -125,7 +125,7 @@ module Constraints
125
125
  end
126
126
 
127
127
  def ruby_version_lt(version)
128
- before do
128
+ before(:all) do
129
129
  if RUBY_VERSION >= version
130
130
  skip "Ruby version less than #{version} required"
131
131
  end
@@ -133,7 +133,7 @@ module Constraints
133
133
  end
134
134
 
135
135
  def require_auth
136
- before do
136
+ before(:all) do
137
137
  unless ENV['AUTH'] == 'auth' || SpecConfig.instance.user || ClusterConfig.instance.auth_enabled?
138
138
  skip "Auth required"
139
139
  end
@@ -141,7 +141,7 @@ module Constraints
141
141
  end
142
142
 
143
143
  def require_no_auth
144
- before do
144
+ before(:all) do
145
145
  if ENV['AUTH'] == 'auth' || SpecConfig.instance.user || ClusterConfig.instance.auth_enabled?
146
146
  skip "Auth not allowed"
147
147
  end
@@ -159,7 +159,7 @@ module Constraints
159
159
  # Can the driver specify a write concern that won't be overridden?
160
160
  # (mongos 4.0+ overrides the write concern)
161
161
  def require_set_write_concern
162
- before do
162
+ before(:all) do
163
163
  if ClusterConfig.instance.topology == :sharded && ClusterConfig.instance.short_server_version >= '4.0'
164
164
  skip "mongos 4.0+ overrides write concern"
165
165
  end
@@ -167,7 +167,7 @@ module Constraints
167
167
  end
168
168
 
169
169
  def require_multi_shard
170
- before do
170
+ before(:all) do
171
171
  if ClusterConfig.instance.topology == :sharded && SpecConfig.instance.addresses.length == 1
172
172
  skip 'Test requires a minimum of two shards if run in sharded topology'
173
173
  end
@@ -175,7 +175,7 @@ module Constraints
175
175
  end
176
176
 
177
177
  def require_no_multi_shard
178
- before do
178
+ before(:all) do
179
179
  if ClusterConfig.instance.topology == :sharded && SpecConfig.instance.addresses.length > 1
180
180
  skip 'Test requires a single shard if run in sharded topology'
181
181
  end
@@ -201,7 +201,7 @@ module Constraints
201
201
  end
202
202
 
203
203
  def require_mmapv1
204
- before do
204
+ before(:all) do
205
205
  if ClusterConfig.instance.storage_engine != :mmapv1
206
206
  skip 'Test requires MMAPv1 storage engine'
207
207
  end
@@ -34,6 +34,8 @@ module Mongo
34
34
  when 'PossiblePrimary' then server.unknown?
35
35
  when 'RSGhost' then server.ghost?
36
36
  when 'RSOther' then server.other?
37
+ else
38
+ raise "Unknown type #{type}"
37
39
  end
38
40
  end
39
41
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongo
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.1
4
+ version: 2.11.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tyler Brock
@@ -31,7 +31,7 @@ cert_chain:
31
31
  bMYVwXXhV8czdzgkQB/ZPWHSbEWXnmkze1mzvqWBCPOVXYrcnL9cnEl/RoxtS1hr
32
32
  Db6Ac6mCUSYfYHBWpWqxjc45n70i5Xi1
33
33
  -----END CERTIFICATE-----
34
- date: 2019-11-15 00:00:00.000000000 Z
34
+ date: 2019-12-04 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bson
@@ -908,6 +908,7 @@ files:
908
908
  - spec/spec_tests/data/sdam/rs/normalize_case.yml
909
909
  - spec/spec_tests/data/sdam/rs/normalize_case_me.yml
910
910
  - spec/spec_tests/data/sdam/rs/null_election_id.yml
911
+ - spec/spec_tests/data/sdam/rs/primary_address_change.yml
911
912
  - spec/spec_tests/data/sdam/rs/primary_becomes_ghost.yml
912
913
  - spec/spec_tests/data/sdam/rs/primary_becomes_mongos.yml
913
914
  - spec/spec_tests/data/sdam/rs/primary_becomes_standalone.yml
@@ -941,6 +942,8 @@ files:
941
942
  - spec/spec_tests/data/sdam/sharded/multiple_mongoses.yml
942
943
  - spec/spec_tests/data/sdam/sharded/non_mongos_removed.yml
943
944
  - spec/spec_tests/data/sdam/sharded/normalize_uri_case.yml
945
+ - spec/spec_tests/data/sdam/sharded/primary_address_change.yml
946
+ - spec/spec_tests/data/sdam/sharded/primary_mismatched_me.yml
944
947
  - spec/spec_tests/data/sdam/sharded/single_mongos.yml
945
948
  - spec/spec_tests/data/sdam/sharded/too_new.yml
946
949
  - spec/spec_tests/data/sdam/sharded/too_old.yml
@@ -954,6 +957,8 @@ files:
954
957
  - spec/spec_tests/data/sdam/single/direct_connection_standalone.yml
955
958
  - spec/spec_tests/data/sdam/single/ls_timeout_standalone.yml
956
959
  - spec/spec_tests/data/sdam/single/not_ok_response.yml
960
+ - spec/spec_tests/data/sdam/single/primary_address_change.yml
961
+ - spec/spec_tests/data/sdam/single/primary_mismatched_me.yml
957
962
  - spec/spec_tests/data/sdam/single/standalone_removed.yml
958
963
  - spec/spec_tests/data/sdam/single/too_new.yml
959
964
  - spec/spec_tests/data/sdam/single/too_old.yml
@@ -961,16 +966,18 @@ files:
961
966
  - spec/spec_tests/data/sdam_monitoring/discovered_standalone.yml
962
967
  - spec/spec_tests/data/sdam_monitoring/replica_set_other_chain.yml
963
968
  - spec/spec_tests/data/sdam_monitoring/replica_set_other_change.yml
964
- - spec/spec_tests/data/sdam_monitoring/replica_set_other_seed.yml
969
+ - spec/spec_tests/data/sdam_monitoring/replica_set_with_me_mismatch.yml
965
970
  - spec/spec_tests/data/sdam_monitoring/replica_set_with_no_primary.yml
966
971
  - spec/spec_tests/data/sdam_monitoring/replica_set_with_primary.yml
967
972
  - spec/spec_tests/data/sdam_monitoring/replica_set_with_primary_and_secondary.yml
973
+ - spec/spec_tests/data/sdam_monitoring/replica_set_with_primary_change.yml
968
974
  - spec/spec_tests/data/sdam_monitoring/replica_set_with_primary_removal.yml
969
975
  - spec/spec_tests/data/sdam_monitoring/replica_set_with_removal.yml
970
976
  - spec/spec_tests/data/sdam_monitoring/replica_set_with_second_seed_removal.yml
971
977
  - spec/spec_tests/data/sdam_monitoring/required_replica_set.yml
972
978
  - spec/spec_tests/data/sdam_monitoring/standalone.yml
973
979
  - spec/spec_tests/data/sdam_monitoring/standalone_repeated.yml
980
+ - spec/spec_tests/data/sdam_monitoring/standalone_to_rs_with_me_mismatch.yml
974
981
  - spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Nearest.yml
975
982
  - spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Nearest_multiple.yml
976
983
  - spec/spec_tests/data/server_selection/ReplicaSetNoPrimary/read/Nearest_non_matching.yml
@@ -1612,13 +1619,15 @@ test_files:
1612
1619
  - spec/spec_tests/data/sdam_monitoring/discovered_standalone.yml
1613
1620
  - spec/spec_tests/data/sdam_monitoring/replica_set_with_primary_removal.yml
1614
1621
  - spec/spec_tests/data/sdam_monitoring/replica_set_with_removal.yml
1622
+ - spec/spec_tests/data/sdam_monitoring/replica_set_with_me_mismatch.yml
1623
+ - spec/spec_tests/data/sdam_monitoring/replica_set_with_primary_change.yml
1615
1624
  - spec/spec_tests/data/sdam_monitoring/replica_set_other_chain.yml
1616
- - spec/spec_tests/data/sdam_monitoring/replica_set_other_seed.yml
1617
1625
  - spec/spec_tests/data/sdam_monitoring/replica_set_with_primary.yml
1618
1626
  - spec/spec_tests/data/sdam_monitoring/standalone_repeated.yml
1619
1627
  - spec/spec_tests/data/sdam_monitoring/replica_set_with_second_seed_removal.yml
1620
1628
  - spec/spec_tests/data/sdam_monitoring/replica_set_other_change.yml
1621
1629
  - spec/spec_tests/data/sdam_monitoring/required_replica_set.yml
1630
+ - spec/spec_tests/data/sdam_monitoring/standalone_to_rs_with_me_mismatch.yml
1622
1631
  - spec/spec_tests/data/uri_options/tls-options.yml
1623
1632
  - spec/spec_tests/data/uri_options/compression-options.yml
1624
1633
  - spec/spec_tests/data/uri_options/connection-options.yml
@@ -1724,7 +1733,9 @@ test_files:
1724
1733
  - spec/spec_tests/data/sdam/single/compatible.yml
1725
1734
  - spec/spec_tests/data/sdam/single/direct_connection_rsprimary.yml
1726
1735
  - spec/spec_tests/data/sdam/single/direct_connection_rsarbiter.yml
1736
+ - spec/spec_tests/data/sdam/single/primary_address_change.yml
1727
1737
  - spec/spec_tests/data/sdam/single/too_new.yml
1738
+ - spec/spec_tests/data/sdam/single/primary_mismatched_me.yml
1728
1739
  - spec/spec_tests/data/sdam/single/ls_timeout_standalone.yml
1729
1740
  - spec/spec_tests/data/sdam/single/direct_connection_standalone.yml
1730
1741
  - spec/spec_tests/data/sdam/sharded/too_old.yml
@@ -1732,7 +1743,9 @@ test_files:
1732
1743
  - spec/spec_tests/data/sdam/sharded/multiple_mongoses.yml
1733
1744
  - spec/spec_tests/data/sdam/sharded/normalize_uri_case.yml
1734
1745
  - spec/spec_tests/data/sdam/sharded/ls_timeout_mongos.yml
1746
+ - spec/spec_tests/data/sdam/sharded/primary_address_change.yml
1735
1747
  - spec/spec_tests/data/sdam/sharded/too_new.yml
1748
+ - spec/spec_tests/data/sdam/sharded/primary_mismatched_me.yml
1736
1749
  - spec/spec_tests/data/sdam/sharded/single_mongos.yml
1737
1750
  - spec/spec_tests/data/sdam/sharded/non_mongos_removed.yml
1738
1751
  - spec/spec_tests/data/sdam/sharded/mongos_disconnect.yml
@@ -1767,6 +1780,7 @@ test_files:
1767
1780
  - spec/spec_tests/data/sdam/rs/primary_changes_set_name.yml
1768
1781
  - spec/spec_tests/data/sdam/rs/primary_to_no_primary_mismatched_me.yml
1769
1782
  - spec/spec_tests/data/sdam/rs/new_primary_wrong_set_name.yml
1783
+ - spec/spec_tests/data/sdam/rs/primary_address_change.yml
1770
1784
  - spec/spec_tests/data/sdam/rs/too_new.yml
1771
1785
  - spec/spec_tests/data/sdam/rs/member_standalone.yml
1772
1786
  - spec/spec_tests/data/sdam/rs/incompatible_ghost.yml