I set up a 6 node replica set with 1 arbiter. I have attached my replica set configuration.
I have on getLastErrorMode called "threeInTwoDC" which means it should write to 3 servers, across 2 data centers.
I started off with two data centers, ny and sf, with 2 machines in ny and 3 in sf.
I then reconfigured to make one of the machines in sf be in a new data center called eu.
Now, when in this state, there are 2 servers (one in ny and one in sf) where if either one of them is fsync-locked a getLastError with w='threeInTwoDC' hangs. It should work with any one server down. Restarting all nodes seems to fix the problem.