-
Type: Bug
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: 1.8.1
-
Component/s: Replication
-
None
-
ALL
The attached script can be run on a single instance for ease of reproduction. Script is complex, basic premise below.
Basic Repro
======
(a) Start replica set nodes with --fastsync and slightly different data
(b) Configuring with rs.init(cfg) => fails
(c) Configuring with rs.init() + rs.add(...) + rs.add(...) => succeeds
Problem #1
======
Step (b) is failing with the following message.
This does not jive with the fact that I can add them one at a time.
{
"errmsg" : "couldn't initiate : member localhost:6901 has data already, cannot initiate set. All members except initiator must be empty.",
"ok" : 0
}
Also, I have --fastsync on. Why can't I start a replica set with known good data?
Problem #2
======
Step (c) is actually succeeding even though the data is different.
Expected resolutions
======
#1: Consistency.
The following two should behave the same:
1. rs.init( [a,b,c] )
2. rs.init( [a] ), rs.reconfig( [a,b] ), rs.reconfig( [a,b,c] )
Both of these should fail if the data does not match.
#2: Bring up new sets with existing data.
If [a,b,c] have the same data files, then rs.init( [a,b,c] ) should work.
- related to
-
SERVER-3250 Should rs.initiate() allow more than one member to have data?
- Closed