diff options
author | Benoit Foucher <benoit@zeroc.com> | 2008-09-26 07:00:14 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2008-09-26 07:00:14 +0200 |
commit | b19987ad1a324152a279cfe845bd4309e8adbad5 (patch) | |
tree | 6a2990ecc8782faccee810587bd5f68965b378c4 /cpp/src | |
parent | Fixed potential IceGrid node hang on shutdown (diff) | |
download | ice-b19987ad1a324152a279cfe845bd4309e8adbad5.tar.bz2 ice-b19987ad1a324152a279cfe845bd4309e8adbad5.tar.xz ice-b19987ad1a324152a279cfe845bd4309e8adbad5.zip |
Fixed locator potential hang when resolving round-robin replica group which could occur if the replica group was removed and added again
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/IceGrid/LocatorI.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/cpp/src/IceGrid/LocatorI.cpp b/cpp/src/IceGrid/LocatorI.cpp index 18d9808df34..3fbe3a146f1 100644 --- a/cpp/src/IceGrid/LocatorI.cpp +++ b/cpp/src/IceGrid/LocatorI.cpp @@ -687,7 +687,14 @@ LocatorI::removePendingResolve(const string& adapterId, int roundRobinCount) // if(roundRobinCount > 0) { - _database->getAdapter(adapterId)->increaseRoundRobinCount(roundRobinCount); + try + { + _database->getAdapter(adapterId)->increaseRoundRobinCount(roundRobinCount); + } + catch(const Ice::Exception&) + { + // Ignore. + } } map<string, deque<Ice::AMD_Locator_findAdapterByIdPtr> >::iterator p = _resolves.find(adapterId); |