I'm seeing lots of the following failure. Seems like a flakey test (passes every so often).
I've found 3 problems:
1. QuorumCnxManager.Listener.run() leaks the socket depending on when the shutdown flag gets set.
2. QuorumCnxManager.halt() doesn't wait for the listener to terminate.
3. QuorumPeer.shuttingDownLE flag doesn't get reset when restarting the leader election.