From 3a8c2144bf6685d0b9ce29010271910a3460a3f8 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 20 Apr 2016 16:26:35 -0700 Subject: [PATCH 1/4] move asset retry debug to print before retry --- libraries/networking/src/ResourceCache.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/libraries/networking/src/ResourceCache.cpp b/libraries/networking/src/ResourceCache.cpp index b6f482dbe7..178c5dd778 100644 --- a/libraries/networking/src/ResourceCache.cpp +++ b/libraries/networking/src/ResourceCache.cpp @@ -514,8 +514,17 @@ void Resource::init() { } } +const int MAX_ATTEMPTS = 8; + void Resource::attemptRequest() { _startedLoading = true; + + auto timer = qobject_cast(sender()); + if (timer) { + qCDebug(networking).nospace() << "Server unavailable for" << _url + << "- retrying asset load after" << timer->interval() << "ms - attempt" << _attempts << " of " << MAX_ATTEMPTS; + } + ResourceCache::attemptRequest(_self); } @@ -602,13 +611,10 @@ void Resource::handleReplyFinished() { } case ResourceRequest::Result::ServerUnavailable: { // retry with increasing delays - const int MAX_ATTEMPTS = 8; const int BASE_DELAY_MS = 1000; if (_attempts++ < MAX_ATTEMPTS) { auto waitTime = BASE_DELAY_MS * (int)pow(2.0, _attempts); - qCDebug(networking) << "Server unavailable for" << _url << - "retrying in " << waitTime << "ms," << - "attempt " << _attempts + 1 << "of" << MAX_ATTEMPTS; + QTimer::singleShot(waitTime, this, &Resource::attemptRequest); break; } From 8cd330f4310ea62a5d9e69822690f1907b24a1db Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 21 Apr 2016 17:07:29 -0700 Subject: [PATCH 2/4] add back on fail when server unavailable --- libraries/networking/src/ResourceCache.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/networking/src/ResourceCache.cpp b/libraries/networking/src/ResourceCache.cpp index 178c5dd778..f9220cf022 100644 --- a/libraries/networking/src/ResourceCache.cpp +++ b/libraries/networking/src/ResourceCache.cpp @@ -615,6 +615,9 @@ void Resource::handleReplyFinished() { if (_attempts++ < MAX_ATTEMPTS) { auto waitTime = BASE_DELAY_MS * (int)pow(2.0, _attempts); + qCDebug(networking) << "Server unavailable for" << _url << "- may retry in" << waitTime << "ms" + << "if resource is still needed"; + QTimer::singleShot(waitTime, this, &Resource::attemptRequest); break; } From 19702a9cd4b847d9c6590248c6331d2495e690be Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 21 Apr 2016 17:09:08 -0700 Subject: [PATCH 3/4] cleanup check for resource retry --- libraries/networking/src/ResourceCache.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libraries/networking/src/ResourceCache.cpp b/libraries/networking/src/ResourceCache.cpp index f9220cf022..3b7e59f6f6 100644 --- a/libraries/networking/src/ResourceCache.cpp +++ b/libraries/networking/src/ResourceCache.cpp @@ -519,10 +519,9 @@ const int MAX_ATTEMPTS = 8; void Resource::attemptRequest() { _startedLoading = true; - auto timer = qobject_cast(sender()); - if (timer) { - qCDebug(networking).nospace() << "Server unavailable for" << _url - << "- retrying asset load after" << timer->interval() << "ms - attempt" << _attempts << " of " << MAX_ATTEMPTS; + if (_attempts > 0) { + qCDebug(networking) << "Server unavailable for" << _url + << "- retrying asset load - attempt" << _attempts << " of " << MAX_ATTEMPTS; } ResourceCache::attemptRequest(_self); From 5ea8b83745aee65fafb4d54435dd2454c95aade8 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 21 Apr 2016 17:16:21 -0700 Subject: [PATCH 4/4] use noquote so URLs are not quoted --- libraries/networking/src/ResourceCache.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libraries/networking/src/ResourceCache.cpp b/libraries/networking/src/ResourceCache.cpp index 3b7e59f6f6..1831a3d509 100644 --- a/libraries/networking/src/ResourceCache.cpp +++ b/libraries/networking/src/ResourceCache.cpp @@ -520,7 +520,7 @@ void Resource::attemptRequest() { _startedLoading = true; if (_attempts > 0) { - qCDebug(networking) << "Server unavailable for" << _url + qCDebug(networking).noquote() << "Server unavailable for" << _url << "- retrying asset load - attempt" << _attempts << " of " << MAX_ATTEMPTS; } @@ -614,7 +614,7 @@ void Resource::handleReplyFinished() { if (_attempts++ < MAX_ATTEMPTS) { auto waitTime = BASE_DELAY_MS * (int)pow(2.0, _attempts); - qCDebug(networking) << "Server unavailable for" << _url << "- may retry in" << waitTime << "ms" + qCDebug(networking).noquote() << "Server unavailable for" << _url << "- may retry in" << waitTime << "ms" << "if resource is still needed"; QTimer::singleShot(waitTime, this, &Resource::attemptRequest);