summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES23
-rw-r--r--cpp/test/Ice/background/AllTests.cpp4
-rw-r--r--cpp/test/Ice/location/AllTests.cpp7
-rw-r--r--cpp/test/Ice/timeout/AllTests.cpp2
-rw-r--r--cpp/test/Ice/udp/AllTests.cpp26
-rw-r--r--cs/test/Ice/background/AllTests.cs4
-rw-r--r--cs/test/Ice/location/AllTests.cs7
-rw-r--r--cs/test/Ice/timeout/AllTests.cs2
-rw-r--r--cs/test/Ice/udp/AllTests.cs24
-rw-r--r--java/test/Ice/background/AllTests.java4
-rw-r--r--java/test/Ice/location/AllTests.java7
-rw-r--r--java/test/Ice/timeout/AllTests.java2
-rw-r--r--java/test/Ice/udp/AllTests.java24
13 files changed, 95 insertions, 41 deletions
diff --git a/CHANGES b/CHANGES
index 76394d1ed41..62412ff7edb 100644
--- a/CHANGES
+++ b/CHANGES
@@ -103,9 +103,20 @@ noted.
administrative clients (or by nodes started with the --deploy
option).
-- Fixed a bug in the IceGrid locator implementation that could cause a
- hang when resolving the endpoints of a round-robin replica group if
- a member of the replica group was removed concurrently.
+- IceGrid locator implementation changes:
+
+ * Fixed a bug where the registry could crash when resolving the
+ endpoints of a replica group if some servers were activating
+ concurrently.
+
+ * Fixed a bug where the registry could hang when resolving the
+ endpoints of a round-robin replica group if a member of the
+ replica group was removed concurrently.
+
+ * Improved the scalability of the locator implementation to better
+ handle large number of concurrent requests. The registry now
+ limits the number of invocation to the IceGrid nodes to get the
+ object adapter endpoints.
- A Slice compiler now removes any files it has generated during the
current execution if it fails or is interrupted.
@@ -138,10 +149,6 @@ C++ Changes
- Fixed a bug in IceSSL where the IceSSL.CheckCertName property did
not have any effect.
-- Fixed a bug in the IceGrid locator implementation that could cause
- the registry to crash when resolving the endpoints of a replica
- group if some servers were activating concurrently.
-
- Fixed icegridadmin `service list' command crash.
- Fixed a bug where slice2cpp and slice2freeze would generate absolute
@@ -263,6 +270,8 @@ Python Changes
- Ice.getSliceDir() now only searches for the "slice" directory in a
standard Ice installation.
+- Improved location of the Python framework on Mac OS X.
+
Ruby Changes
============
diff --git a/cpp/test/Ice/background/AllTests.cpp b/cpp/test/Ice/background/AllTests.cpp
index 1aa19dbefa8..1f2c9e6b6b1 100644
--- a/cpp/test/Ice/background/AllTests.cpp
+++ b/cpp/test/Ice/background/AllTests.cpp
@@ -245,13 +245,13 @@ void readWriteTests(const ConfigurationPtr&, const Test::BackgroundPrx&, const T
BackgroundPrx
allTests(const Ice::CommunicatorPtr& communicator)
{
- string sref = "background:default -p 12010 -t 10000";
+ string sref = "background:default -p 12010 -t 20000";
Ice::ObjectPrx obj = communicator->stringToProxy(sref);
test(obj);
BackgroundPrx background = BackgroundPrx::uncheckedCast(obj);
- sref = "backgroundController:tcp -p 12011 -t 10000";
+ sref = "backgroundController:tcp -p 12011 -t 20000";
obj = communicator->stringToProxy(sref);
test(obj);
diff --git a/cpp/test/Ice/location/AllTests.cpp b/cpp/test/Ice/location/AllTests.cpp
index 5bb637de642..941fb8ef0d5 100644
--- a/cpp/test/Ice/location/AllTests.cpp
+++ b/cpp/test/Ice/location/AllTests.cpp
@@ -359,7 +359,8 @@ allTests(const Ice::CommunicatorPtr& communicator, const string& ref)
catch(const Ice::NotRegisteredException&)
{
}
- test(locator->getRequestCount() > count && locator->getRequestCount() < count + 999);
+ // Take into account the retries.
+ test(locator->getRequestCount() > count && locator->getRequestCount() < count + 1999);
if(locator->getRequestCount() > count + 800)
{
cout << "queuing = " << locator->getRequestCount() - count;
@@ -522,8 +523,8 @@ allTests(const Ice::CommunicatorPtr& communicator, const string& ref)
test(count == locator->getRequestCount());
registry->setAdapterDirectProxy("TestAdapter5", 0);
registry->addObject(communicator->stringToProxy("test3:tcp"));
- ic->stringToProxy("test@TestAdapter5")->ice_locatorCacheTimeout(1)->ice_ping(); // 1s timeout.
- ic->stringToProxy("test3")->ice_locatorCacheTimeout(1)->ice_ping(); // 1s timeout.
+ ic->stringToProxy("test@TestAdapter5")->ice_locatorCacheTimeout(10)->ice_ping(); // 10s timeout.
+ ic->stringToProxy("test3")->ice_locatorCacheTimeout(10)->ice_ping(); // 10s timeout.
test(count == locator->getRequestCount());
IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(1200));
diff --git a/cpp/test/Ice/timeout/AllTests.cpp b/cpp/test/Ice/timeout/AllTests.cpp
index 63e5a77a1a2..5bfcbd78879 100644
--- a/cpp/test/Ice/timeout/AllTests.cpp
+++ b/cpp/test/Ice/timeout/AllTests.cpp
@@ -190,7 +190,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
// Expect success.
//
timeout->op(); // Ensure adapter is active.
- TimeoutPrx to = TimeoutPrx::uncheckedCast(obj->ice_timeout(1000));
+ TimeoutPrx to = TimeoutPrx::uncheckedCast(obj->ice_timeout(2000));
try
{
to->sleep(500);
diff --git a/cpp/test/Ice/udp/AllTests.cpp b/cpp/test/Ice/udp/AllTests.cpp
index 2965004ec56..61d5f5efbe0 100644
--- a/cpp/test/Ice/udp/AllTests.cpp
+++ b/cpp/test/Ice/udp/AllTests.cpp
@@ -73,12 +73,26 @@ allTests(const CommunicatorPtr& communicator)
ObjectPrx base = communicator->stringToProxy("test:udp -p 12010")->ice_datagram();
TestIntfPrx obj = TestIntfPrx::uncheckedCast(base);
- replyI->reset();
- obj->ping(reply);
- obj->ping(reply);
- obj->ping(reply);
- bool ret = replyI->waitReply(3, IceUtil::Time::seconds(2));
- test(ret == true);
+ int nRetry = 5;
+ bool ret;
+ while(nRetry-- > 0)
+ {
+ replyI->reset();
+ obj->ping(reply);
+ obj->ping(reply);
+ obj->ping(reply);
+ ret = replyI->waitReply(3, IceUtil::Time::seconds(2));
+ if(ret)
+ {
+ break; // Success
+ }
+
+ // If the 3 datagrams were not received within the 2 seconds, we try again to
+ // receive 3 new datagrams using a new object. We give up after 5 retries.
+ replyI = new PingReplyI;
+ reply = PingReplyPrx::uncheckedCast(adapter->addWithUUID(replyI))->ice_datagram();
+ }
+ test(ret);
if(communicator->getProperties()->getPropertyAsInt("Ice.Override.Compress") == 0)
{
diff --git a/cs/test/Ice/background/AllTests.cs b/cs/test/Ice/background/AllTests.cs
index 1c6c3373729..47849311d2c 100644
--- a/cs/test/Ice/background/AllTests.cs
+++ b/cs/test/Ice/background/AllTests.cs
@@ -219,13 +219,13 @@ public class AllTests
public static Test.BackgroundPrx allTests(Ice.Communicator communicator)
{
- string sref = "background:default -p 12010 -t 10000";
+ string sref = "background:default -p 12010 -t 20000";
Ice.ObjectPrx obj = communicator.stringToProxy(sref);
test(obj != null);
BackgroundPrx background = BackgroundPrxHelper.uncheckedCast(obj);
- sref = "backgroundController:tcp -p 12011 -t 10000";
+ sref = "backgroundController:tcp -p 12011 -t 20000";
obj = communicator.stringToProxy(sref);
test(obj != null);
diff --git a/cs/test/Ice/location/AllTests.cs b/cs/test/Ice/location/AllTests.cs
index 0c6bdce8522..b91af5e17d4 100644
--- a/cs/test/Ice/location/AllTests.cs
+++ b/cs/test/Ice/location/AllTests.cs
@@ -347,7 +347,8 @@ public class AllTests
catch(Ice.NotRegisteredException)
{
}
- test(locator.getRequestCount() > count && locator.getRequestCount() < count + 999);
+ // Take into account the retries.
+ test(locator.getRequestCount() > count && locator.getRequestCount() < count + 1999);
if(locator.getRequestCount() > count + 800)
{
Console.Out.Write("queuing = " + (locator.getRequestCount() - count));
@@ -584,8 +585,8 @@ public class AllTests
{
}
registry.addObject(communicator.stringToProxy("test3:tcp"));
- ic.stringToProxy("test@TestAdapter5").ice_locatorCacheTimeout(1).ice_ping(); // 1s timeout.
- ic.stringToProxy("test3").ice_locatorCacheTimeout(1).ice_ping(); // 1s timeout.
+ ic.stringToProxy("test@TestAdapter5").ice_locatorCacheTimeout(10).ice_ping(); // 10s timeout.
+ ic.stringToProxy("test3").ice_locatorCacheTimeout(10).ice_ping(); // 10s timeout.
test(count == locator.getRequestCount());
System.Threading.Thread.Sleep(new System.TimeSpan(10 * 1200 * 1000));
diff --git a/cs/test/Ice/timeout/AllTests.cs b/cs/test/Ice/timeout/AllTests.cs
index 5819bfccb80..f33f986be27 100644
--- a/cs/test/Ice/timeout/AllTests.cs
+++ b/cs/test/Ice/timeout/AllTests.cs
@@ -175,7 +175,7 @@ public class AllTests
// Expect success.
//
timeout.op(); // Ensure adapter is active.
- Test.TimeoutPrx to = Test.TimeoutPrxHelper.uncheckedCast(obj.ice_timeout(1000));
+ Test.TimeoutPrx to = Test.TimeoutPrxHelper.uncheckedCast(obj.ice_timeout(2000));
to.holdAdapter(500);
to.ice_getConnection().close(true); // Force a reconnect.
try
diff --git a/cs/test/Ice/udp/AllTests.cs b/cs/test/Ice/udp/AllTests.cs
index e4e8006da17..d582ca1967b 100644
--- a/cs/test/Ice/udp/AllTests.cs
+++ b/cs/test/Ice/udp/AllTests.cs
@@ -78,11 +78,25 @@ public class AllTests
Ice.ObjectPrx @base = communicator.stringToProxy("test:udp -p 12010").ice_datagram();
Test.TestIntfPrx obj = Test.TestIntfPrxHelper.uncheckedCast(@base);
- replyI.reset();
- obj.ping(reply);
- obj.ping(reply);
- obj.ping(reply);
- bool ret = replyI.waitReply(3, 2000);
+ int nRetry = 5;
+ bool ret = false;
+ while(nRetry-- > 0)
+ {
+ replyI.reset();
+ obj.ping(reply);
+ obj.ping(reply);
+ obj.ping(reply);
+ ret = replyI.waitReply(3, 2000);
+ if(ret)
+ {
+ break; // Success
+ }
+
+ // If the 3 datagrams were not received within the 2 seconds, we try again to
+ // receive 3 new datagrams using a new object. We give up after 5 retries.
+ replyI = new PingReplyI();
+ reply =(Test.PingReplyPrx)Test.PingReplyPrxHelper.uncheckedCast(adapter.addWithUUID(replyI)).ice_datagram();
+ }
test(ret == true);
if(communicator.getProperties().getPropertyAsInt("Ice.Override.Compress") == 0)
diff --git a/java/test/Ice/background/AllTests.java b/java/test/Ice/background/AllTests.java
index 737f792c8d0..2c58e1a2ab6 100644
--- a/java/test/Ice/background/AllTests.java
+++ b/java/test/Ice/background/AllTests.java
@@ -229,13 +229,13 @@ public class AllTests
public static Test.BackgroundPrx
allTests(Ice.Communicator communicator, java.io.PrintStream out)
{
- String sref = "background:default -p 12010 -t 10000";
+ String sref = "background:default -p 12010 -t 20000";
Ice.ObjectPrx obj = communicator.stringToProxy(sref);
test(obj != null);
BackgroundPrx background = BackgroundPrxHelper.uncheckedCast(obj);
- sref = "backgroundController:tcp -p 12011 -t 10000";
+ sref = "backgroundController:tcp -p 12011 -t 20000";
obj = communicator.stringToProxy(sref);
test(obj != null);
diff --git a/java/test/Ice/location/AllTests.java b/java/test/Ice/location/AllTests.java
index df1544e9038..fe1dd53a7d7 100644
--- a/java/test/Ice/location/AllTests.java
+++ b/java/test/Ice/location/AllTests.java
@@ -364,7 +364,8 @@ public class AllTests
catch(Ice.NotRegisteredException ex)
{
}
- test(locator.getRequestCount() > count && locator.getRequestCount() < count + 999);
+ // We need to take into account the retries.
+ test(locator.getRequestCount() > count && locator.getRequestCount() < count + 1999);
if(locator.getRequestCount() > count + 800)
{
System.out.print("queuing = " + (locator.getRequestCount() - count));
@@ -605,8 +606,8 @@ public class AllTests
{
}
registry.addObject(communicator.stringToProxy("test3:tcp"));
- ic.stringToProxy("test@TestAdapter5").ice_locatorCacheTimeout(1).ice_ping(); // 1s timeout.
- ic.stringToProxy("test3").ice_locatorCacheTimeout(1).ice_ping(); // 1s timeout.
+ ic.stringToProxy("test@TestAdapter5").ice_locatorCacheTimeout(10).ice_ping(); // 10s timeout.
+ ic.stringToProxy("test3").ice_locatorCacheTimeout(10).ice_ping(); // 10s timeout.
test(count == locator.getRequestCount());
try
{
diff --git a/java/test/Ice/timeout/AllTests.java b/java/test/Ice/timeout/AllTests.java
index 73cf9dffb5c..1f827eb9e47 100644
--- a/java/test/Ice/timeout/AllTests.java
+++ b/java/test/Ice/timeout/AllTests.java
@@ -190,7 +190,7 @@ public class AllTests
// Expect success.
//
timeout.op(); // Ensure adapter is active.
- TimeoutPrx to = TimeoutPrxHelper.uncheckedCast(obj.ice_timeout(1000));
+ TimeoutPrx to = TimeoutPrxHelper.uncheckedCast(obj.ice_timeout(2000));
to.holdAdapter(500);
to.ice_getConnection().close(true); // Force a reconnect.
try
diff --git a/java/test/Ice/udp/AllTests.java b/java/test/Ice/udp/AllTests.java
index e374478f2ea..53f10f5a633 100644
--- a/java/test/Ice/udp/AllTests.java
+++ b/java/test/Ice/udp/AllTests.java
@@ -76,11 +76,25 @@ public class AllTests
Ice.ObjectPrx base = communicator.stringToProxy("test:udp -p 12010").ice_datagram();
Test.TestIntfPrx obj = Test.TestIntfPrxHelper.uncheckedCast(base);
- replyI.reset();
- obj.ping(reply);
- obj.ping(reply);
- obj.ping(reply);
- boolean ret = replyI.waitReply(3, 2000);
+ int nRetry = 5;
+ boolean ret = false;
+ while(nRetry-- > 0)
+ {
+ replyI.reset();
+ obj.ping(reply);
+ obj.ping(reply);
+ obj.ping(reply);
+ ret = replyI.waitReply(3, 2000);
+ if(ret)
+ {
+ break; // Success
+ }
+
+ // If the 3 datagrams were not received within the 2 seconds, we try again to
+ // receive 3 new datagrams using a new object. We give up after 5 retries.
+ replyI = new PingReplyI();
+ reply =(Test.PingReplyPrx)Test.PingReplyPrxHelper.uncheckedCast(adapter.addWithUUID(replyI)).ice_datagram();
+ }
test(ret == true);
if(communicator.getProperties().getPropertyAsInt("Ice.Override.Compress") == 0)