The attached script can be run on a single instance for ease of reproduction. Script is complex, basic premise below.
(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
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?
Step (c) is actually succeeding even though the data is different.
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.