Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
I propose adding a test suite to simulate various network issues/failures in order to get good test coverage on some of the retry paths that aren't easy to hit in mock unit tests.
At the moment the only things that hit the retry paths are the gmock unit tests. The gmock are only as good as their mock implementations which do a great job of simulating protocol correctness but not more complex interactions. They also can't really simulate the types of lock contention and subtle memory stomps that show up while doing hundreds or thousands of concurrent reads. We should add a new minidfscluster test that focuses on heavy read/seek load and then randomly convert error codes returned by network functions into errors.
List of things to simulate(while heavily loaded), roughly in order of how badly I think they need to be tested at the moment:
-Rpc connection disconnect
-Rpc connection slowed down enough to cause a timeout and trigger retry
-DN connection disconnect