Goals:
- Reduce Gossip Flakes
- time.sleep in gossip tests
- remove data races
Gossip Flakes / Connection Management
TestBasic
- Bi-
Test Accept
- Same client makes two connections, does not finish servicing connection before second one comes in, causing a race
- Possible Solution:
- Separate outgoing and incoming versions of the connection -> so that if we see a second incoming we don’t cancel the first incoming
- https://jira.hyperledger.org/browse/FAB-15486
Observations on Connection (gossip/comm/conn.go).connection
- stopFlag (atomic) and stopCh manage whether the connection is being closed - > We should use one or the other, not both. I think with the way most of the code is, we need the stopCh, so we should get rid of the toDie() function and select on the stopCh as appropriate