mirror of
https://github.com/lubosz/overte.git
synced 2025-04-24 18:23:22 +02:00
Merge pull request #5788 from birarda/master
make node timeout less brittle (by giving it more time)
This commit is contained in:
commit
2bb633d370
5 changed files with 20 additions and 20 deletions
|
@ -43,7 +43,7 @@
|
|||
#include "udt/Socket.h"
|
||||
#include "UUIDHasher.h"
|
||||
|
||||
const quint64 NODE_SILENCE_THRESHOLD_MSECS = 2 * 1000;
|
||||
const quint64 NODE_SILENCE_THRESHOLD_MSECS = 5 * 1000;
|
||||
|
||||
extern const char SOLO_NODE_TYPES[2];
|
||||
|
||||
|
|
|
@ -81,9 +81,9 @@ SendQueue& Connection::getSendQueue() {
|
|||
// Lasily create send queue
|
||||
_sendQueue = SendQueue::create(_parentSocket, _destination);
|
||||
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
qCDebug(networking) << "Created SendQueue for connection to" << _destination;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
QObject::connect(_sendQueue.get(), &SendQueue::packetSent, this, &Connection::packetSent);
|
||||
QObject::connect(_sendQueue.get(), &SendQueue::packetSent, this, &Connection::recordSentPackets);
|
||||
|
@ -103,14 +103,14 @@ void Connection::queueInactive() {
|
|||
// tell our current send queue to go down and reset our ptr to it to null
|
||||
stopSendQueue();
|
||||
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
qCDebug(networking) << "Connection to" << _destination << "has stopped its SendQueue.";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (!_hasReceivedHandshake || !_isReceivingData) {
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
qCDebug(networking) << "Connection SendQueue to" << _destination << "stopped and no data is being received - stopping connection.";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
emit connectionInactive(_destination);
|
||||
}
|
||||
|
@ -167,9 +167,9 @@ void Connection::sync() {
|
|||
// otherwise we'll wait for it to also timeout before cleaning up
|
||||
if (!_sendQueue) {
|
||||
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
qCDebug(networking) << "Connection to" << _destination << "no longer receiving any data and there is currently no send queue - stopping connection.";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
emit connectionInactive(_destination);
|
||||
}
|
||||
|
@ -203,10 +203,10 @@ void Connection::sync() {
|
|||
// it's been CONNECTION_NOT_USED_EXPIRY_SECONDS and nothing has actually happened with this connection
|
||||
// consider it inactive and emit our inactivity signal
|
||||
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
qCDebug(networking) << "Connection to" << _destination << "did not receive or send any data in last"
|
||||
<< CONNECTION_NOT_USED_EXPIRY_SECONDS << "seconds - stopping connection.";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
emit connectionInactive(_destination);
|
||||
}
|
||||
|
|
|
@ -343,10 +343,10 @@ void SendQueue::run() {
|
|||
// If the flow window has been full for over CONSIDER_INACTIVE_AFTER,
|
||||
// then signal the queue is inactive and return so it can be cleaned up
|
||||
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
qCDebug(networking) << "SendQueue to" << _destination << "reached" << NUM_TIMEOUTS_BEFORE_INACTIVE << "timeouts"
|
||||
<< "and 10s before receiving any ACK/NAK and is now inactive. Stopping.";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
deactivate();
|
||||
|
||||
|
@ -374,12 +374,12 @@ void SendQueue::run() {
|
|||
doubleLock.unlock();
|
||||
|
||||
if (cvStatus == std::cv_status::timeout) {
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
qCDebug(networking) << "SendQueue to" << _destination << "has been empty for"
|
||||
<< EMPTY_QUEUES_INACTIVE_TIMEOUT.count()
|
||||
<< "seconds and receiver has ACKed all packets."
|
||||
<< "The queue is now inactive and will be stopped.";
|
||||
#endif
|
||||
#endif
|
||||
|
||||
deactivate();
|
||||
|
||||
|
|
|
@ -186,9 +186,9 @@ Connection& Socket::findOrCreateConnection(const HifiSockAddr& sockAddr) {
|
|||
QObject::connect(connection.get(), &Connection::connectionInactive, this, &Socket::cleanupConnection,
|
||||
Qt::QueuedConnection);
|
||||
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
qCDebug(networking) << "Creating new connection to" << sockAddr;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
it = _connectionsHash.insert(it, std::make_pair(sockAddr, std::move(connection)));
|
||||
}
|
||||
|
@ -208,9 +208,9 @@ void Socket::clearConnections() {
|
|||
}
|
||||
|
||||
void Socket::cleanupConnection(HifiSockAddr sockAddr) {
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
#ifdef UDT_CONNECTION_DEBUG
|
||||
qCDebug(networking) << "Socket::cleanupConnection called for UDT connection to" << sockAddr;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
_connectionsHash.erase(sockAddr);
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include "CongestionControl.h"
|
||||
#include "Connection.h"
|
||||
|
||||
#define UDT_CONNECTION_DEBUG
|
||||
//#define UDT_CONNECTION_DEBUG
|
||||
|
||||
class UDTTest;
|
||||
|
||||
|
|
Loading…
Reference in a new issue