Skip to content

Commit 105e6ea

Browse files
Sven Göthelsgothel
Sven Göthel
authored andcommitted
Remove disabled StreamSocket::checkRemoval criteria MinBytesPerSec minimum throughput
PR #9916 added `MinBytesPerSec` minimum throughput criteria for checkRemoval to limit connections, i.e. cleaning up unresponsiveness or lagging sockets. Due to its unreliable nature per request, the criteria has been disabled per default but remained in the code test w/ UT UnitTimeoutSocket. Turns out that even the UT may fail on certain test setups. We decided to remove this criteria altogether, as it will nor be used. Signed-off-by: Sven Göthel <[email protected]> Change-Id: I9212cdf8b87c1c7b0df5761db956cbaa4fd44f58
1 parent fcd34d2 commit 105e6ea

9 files changed

+2
-214
lines changed

net/NetUtil.hpp

-3
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,6 @@ class Defaults
4141

4242
/// Maximum total connections (9999 or MAX_CONNECTIONS). Zero disables metric.
4343
size_t MaxConnections;
44-
/// Socket minimum bits per seconds throughput (0). Zero disables metric.
45-
double MinBytesPerSec;
4644

4745
/// Socket poll timeout in us (64s), useful to increase for debugging.
4846
std::chrono::microseconds SocketPollTimeout;
@@ -53,7 +51,6 @@ class Defaults
5351
, WSPingPeriod(std::chrono::microseconds(3000000))
5452
, HTTPTimeout(std::chrono::microseconds(30000000))
5553
, MaxConnections(9999)
56-
, MinBytesPerSec(0.0)
5754
, SocketPollTimeout(std::chrono::microseconds(64000000))
5855
{
5956
}

net/Socket.cpp

+2-9
Original file line numberDiff line numberDiff line change
@@ -1502,24 +1502,17 @@ bool StreamSocket::checkRemoval(std::chrono::steady_clock::time_point now)
15021502
if( isIPType() )
15031503
{
15041504
// Forced removal on outside-facing IPv[46] network connections only
1505-
const auto durTotal =
1506-
std::chrono::duration_cast<std::chrono::milliseconds>(now - getCreationTime());
15071505
const auto durLast =
15081506
std::chrono::duration_cast<std::chrono::milliseconds>(now - getLastSeenTime());
1509-
const double bytesPerSecIn = durTotal.count() > 0 ? (double)bytesRcvd() / ((double)durTotal.count() / 1000.0) : 0.0;
15101507
/// TO Criteria: Violate maximum idle (_pollTimeout default 64s)
15111508
const bool isIDLE = _pollTimeout > std::chrono::microseconds::zero() &&
15121509
durLast > _pollTimeout;
1513-
/// TO Criteria: Violate minimum bytes-per-sec throughput? (_minBytesPerSec default 0, disabled)
1514-
const bool isMinThroughput = _minBytesPerSec > std::numeric_limits<double>::epsilon() &&
1515-
bytesPerSecIn > std::numeric_limits<double>::epsilon() &&
1516-
bytesPerSecIn < _minBytesPerSec;
15171510
/// TO Criteria: Shall terminate?
15181511
const bool isTermination = SigUtil::getTerminationFlag();
1519-
if (isIDLE || isMinThroughput || isTermination )
1512+
if (isIDLE || isTermination )
15201513
{
15211514
LOG_WRN("CheckRemoval: Timeout: {IDLE " << isIDLE
1522-
<< ", MinThroughput " << isMinThroughput << ", Termination " << isTermination << "}, "
1515+
<< ", Termination " << isTermination << "}, "
15231516
<< getStatsString(now) << ", "
15241517
<< *this);
15251518
if (_socketHandler)

net/Socket.hpp

-3
Original file line numberDiff line numberDiff line change
@@ -1069,7 +1069,6 @@ class StreamSocket : public Socket,
10691069
Socket(fd, type, creationTime),
10701070
_pollTimeout( net::Defaults::get().SocketPollTimeout ),
10711071
_httpTimeout( net::Defaults::get().HTTPTimeout ),
1072-
_minBytesPerSec( net::Defaults::get().MinBytesPerSec ),
10731072
_hostname(std::move(host)),
10741073
_wsState(WSState::HTTP),
10751074
_isLocalHost(hostType == LocalHost),
@@ -1739,8 +1738,6 @@ class StreamSocket : public Socket,
17391738
const std::chrono::microseconds _pollTimeout;
17401739
/// defaults to 30s, see net::Defaults::HTTPTimeout
17411740
const std::chrono::microseconds _httpTimeout;
1742-
/// defaults to 0 (disabled), see net::Defaults::MinBytesPerSec
1743-
const double _minBytesPerSec;
17441741

17451742
/// The hostname (or IP) of the peer we are connecting to.
17461743
const std::string _hostname;

test/Makefile.am

-3
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ all_la_unit_tests = \
9191
unit-join-disconnect.la \
9292
unit-initial-load-fail.la \
9393
unit-timeout.la \
94-
unit-timeout_socket.la \
9594
unit-timeout_wsping.la \
9695
unit-timeout_conn.la \
9796
unit-timeout_none.la \
@@ -227,8 +226,6 @@ unit_join_disconnect_la_SOURCES = UnitJoinDisconnect.cpp
227226
unit_join_disconnect_la_LIBADD = $(CPPUNIT_LIBS)
228227
unit_timeout_la_SOURCES = UnitTimeout.cpp
229228
unit_timeout_la_LIBADD = $(CPPUNIT_LIBS)
230-
unit_timeout_socket_la_SOURCES = UnitTimeoutSocket.cpp
231-
unit_timeout_socket_la_LIBADD = $(CPPUNIT_LIBS)
232229
unit_timeout_wsping_la_SOURCES = UnitTimeoutWSPing.cpp
233230
unit_timeout_wsping_la_LIBADD = $(CPPUNIT_LIBS)
234231
unit_timeout_conn_la_SOURCES = UnitTimeoutConnections.cpp

test/UnitTimeoutConnections.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ class UnitTimeoutConnections : public UnitTimeoutBase1
3939
// defaults.HTTPTimeout = std::chrono::microseconds(30000000);
4040
// defaults.MaxConnections = 9999;
4141
defaults.MaxConnections = ConnectionLimit;
42-
// defaults.MinBytesPerSec = 0.0;
4342
// defaults.SocketPollTimeout = std::chrono::microseconds(64000000);
4443
}
4544

test/UnitTimeoutNone.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ class UnitTimeoutNone : public UnitTimeoutBase1
3939
// defaults.HTTPTimeout = std::chrono::microseconds(30000000);
4040
// defaults.MaxConnections = 9999;
4141
// defaults.MaxConnections = ConnectionLimit;
42-
// defaults.MinBytesPerSec = 0.0;
4342
// defaults.SocketPollTimeout = std::chrono::microseconds(64000000);
4443
}
4544

test/UnitTimeoutSocket.cpp

-192
This file was deleted.

test/UnitTimeoutWSPing.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ class UnitTimeoutWSPing : public UnitTimeoutBase0
4040
defaults.WSPingPeriod = std::chrono::microseconds(10000);
4141
// defaults.HTTPTimeout = std::chrono::microseconds(30000000);
4242
// defaults.MaxConnections = 9999;
43-
// defaults.MinBytesPerSec = 0.0;
4443
// defaults.SocketPollTimeout = std::chrono::microseconds(64000000);
4544
}
4645

wsd/COOLWSD.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -2771,7 +2771,6 @@ void COOLWSD::innerInitialize(Poco::Util::Application& self)
27712771
LOG_DBG("net::Defaults: WSPing[Timeout "
27722772
<< netDefaults.WSPingTimeout << ", Period " << netDefaults.WSPingPeriod << "], HTTP[Timeout "
27732773
<< netDefaults.HTTPTimeout << "], Socket[MaxConnections " << netDefaults.MaxConnections
2774-
<< ", MinBytesPerSec " << netDefaults.MinBytesPerSec
27752774
<< "], SocketPoll[Timeout " << netDefaults.SocketPollTimeout << "]");
27762775
}
27772776

0 commit comments

Comments
 (0)