|
@@ -942,7 +942,6 @@ int CCD_API roxie_main(int argc, const char *argv[], const char * defaultYaml)
|
|
|
udpRetryBusySenders = topology->getPropInt("@udpRetryBusySenders", 0);
|
|
|
|
|
|
// Historically, this was specified in seconds. Assume any value <= 10 is a legacy value specified in seconds!
|
|
|
- udpMaxRetryTimedoutReqs = topology->getPropInt("@udpMaxRetryTimedoutReqs", 0);
|
|
|
udpRequestToSendTimeout = topology->getPropInt("@udpRequestToSendTimeout", 0);
|
|
|
if (udpRequestToSendTimeout<=10)
|
|
|
udpRequestToSendTimeout *= 1000;
|
|
@@ -957,7 +956,21 @@ int CCD_API roxie_main(int argc, const char *argv[], const char * defaultYaml)
|
|
|
else
|
|
|
udpRequestToSendTimeout = 5000;
|
|
|
}
|
|
|
+
|
|
|
udpRequestToSendAckTimeout = topology->getPropInt("@udpRequestToSendAckTimeout", 100);
|
|
|
+ if (!udpRequestToSendAckTimeout)
|
|
|
+ {
|
|
|
+ udpRequestToSendAckTimeout = 100;
|
|
|
+ DBGLOG("Bad or missing value for udpRequestToSendAckTimeout - using %u", udpRequestToSendAckTimeout);
|
|
|
+ }
|
|
|
+ udpMaxRetryTimedoutReqs = topology->getPropInt("@udpMaxRetryTimedoutReqs", 0);
|
|
|
+#ifdef _CONTAINERIZED
|
|
|
+ if (!udpMaxRetryTimedoutReqs) // 0 traditionally means retry forever - which is a really bad idea in cloud world where replacement node may have different IP
|
|
|
+ {
|
|
|
+ udpMaxRetryTimedoutReqs = 60000/udpRequestToSendAckTimeout; // Give up after 1 minute
|
|
|
+ DBGLOG("Bad or missing value for udpMaxRetryTimedoutReqs - using %u", udpMaxRetryTimedoutReqs);
|
|
|
+ }
|
|
|
+#endif
|
|
|
// MORE: might want to check socket buffer sizes against sys max here instead of udp threads ?
|
|
|
udpSnifferReadThreadPriority = topology->getPropInt("@udpSnifferReadThreadPriority", 3);
|
|
|
udpSnifferSendThreadPriority = topology->getPropInt("@udpSnifferSendThreadPriority", 3);
|
|
@@ -1184,6 +1197,11 @@ int CCD_API roxie_main(int argc, const char *argv[], const char * defaultYaml)
|
|
|
#ifdef _CONTAINERIZED
|
|
|
IpAddress myIP(".");
|
|
|
myNode.setIp(myIP);
|
|
|
+ if (traceLevel)
|
|
|
+ {
|
|
|
+ StringBuffer s;
|
|
|
+ DBGLOG("My node ip=%s", myIP.getIpText(s).str());
|
|
|
+ }
|
|
|
if (topology->getPropBool("@server", true))
|
|
|
{
|
|
|
Owned<IPropertyTreeIterator> roxieFarms = topology->getElements("./services");
|