diff options
author | Sage Weil <sage@inktank.com> | 2013-07-15 17:10:23 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-07-24 16:20:36 -0700 |
commit | f938a5bf604885ffba65a9b86e19258ca254e58c (patch) | |
tree | b9e239ba7e58036e872f30f2536db8286953ec48 | |
parent | 07b9ebf4212d53606ce332ff927a2ff68ed26978 (diff) | |
download | ceph-f938a5bf604885ffba65a9b86e19258ca254e58c.tar.gz |
msgr: mark_down_all() after, not before, rebind
If we are shutting down all old connections and binding to new ports,
we want to avoid a sequence like:
- close all prevoius connections
- new connection comes in on old port
- rebind to new ports
-> connection from old port leaks through
As a first step, close all connections after we shut down the old
accepter and before we start the new one.
Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit 07a0860a1899c7353bb506e33de72fdd22b857dd)
Conflicts:
src/msg/SimpleMessenger.cc
-rw-r--r-- | src/msg/SimpleMessenger.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/msg/SimpleMessenger.cc b/src/msg/SimpleMessenger.cc index c60be44e22d..71bdb8b341d 100644 --- a/src/msg/SimpleMessenger.cc +++ b/src/msg/SimpleMessenger.cc @@ -271,9 +271,10 @@ int SimpleMessenger::bind(const entity_addr_t &bind_addr) int SimpleMessenger::rebind(int avoid_port) { ldout(cct,1) << "rebind avoid " << avoid_port << dendl; - mark_down_all(); assert(did_bind); - return accepter.rebind(avoid_port); + int r = accepter.rebind(avoid_port); + mark_down_all(); + return r; } int SimpleMessenger::start() |