Added `ENOTFOUND` for secondary endpoint and `ECONNREFUSED` to `RetryPolicyFilter`.
This commit is contained in:
Родитель
d6a727cfb2
Коммит
547fccf586
|
@ -3,6 +3,9 @@ be taken. This is a GA release and the changes described below indicate the chan
|
|||
|
||||
2016.11 Version 1.4.0
|
||||
|
||||
ALL
|
||||
* Added `ENOTFOUND` for secondary endpoint and `ECONNREFUSED` to `RetryPolicyFilter`.
|
||||
|
||||
BLOB
|
||||
* Fixed the issue that the ChunkAllocator maxCount is aligned with parallelOperationThreadCount.
|
||||
* Changed `/S` of SpeedSummary to `/s`.
|
||||
|
|
|
@ -105,7 +105,7 @@ RetryPolicyFilter._handle = function (self, requestOptions, next) {
|
|||
// If a request sent to the secondary location fails with 404 (Not Found), it is possible
|
||||
// that the resource replication is not finished yet. So, in case of 404 only in the secondary
|
||||
// location, the failure should still be retryable.
|
||||
var secondaryNotFound = (retryRequestOptions.currentLocation === Constants.StorageLocation.SECONDARY) && (returnObject.response && returnObject.response.statusCode === 404);
|
||||
var secondaryNotFound = (retryRequestOptions.currentLocation === Constants.StorageLocation.SECONDARY) && ((returnObject.response && returnObject.response.statusCode === 404) || (returnObject.error && returnObject.error.code === 'ENOTFOUND'));
|
||||
|
||||
var retryInfo = self.shouldRetry(secondaryNotFound ? 500 : (azureutil.objectIsNull(returnObject.response) ? 306 : returnObject.response.statusCode), retryRequestOptions);
|
||||
retryRequestOptions.retryContext.retryCount++;
|
||||
|
@ -130,7 +130,7 @@ RetryPolicyFilter._handle = function (self, requestOptions, next) {
|
|||
// we should NOT retry within the SDK as the stream data is not valid anymore if we retry directly.
|
||||
if (!returnObject.outputStreamSent && returnObject.error && azureutil.objectIsNull(returnObject.retryable) &&
|
||||
((!azureutil.objectIsNull(returnObject.response) && retryInfo.retryable) ||
|
||||
(returnObject.error.code === 'ETIMEDOUT' || returnObject.error.code === 'ESOCKETTIMEDOUT' || returnObject.error.code === 'ECONNRESET' || returnObject.error.code === 'EAI_AGAIN'))) {
|
||||
(returnObject.error.code === 'ECONNREFUSED' || returnObject.error.code === 'ETIMEDOUT' || returnObject.error.code === 'ESOCKETTIMEDOUT' || returnObject.error.code === 'ECONNRESET' || returnObject.error.code === 'EAI_AGAIN'))) {
|
||||
|
||||
if (retryRequestOptions.currentLocation === Constants.StorageLocation.PRIMARY) {
|
||||
lastPrimaryAttempt = returnObject.operationEndTime;
|
||||
|
|
Загрузка…
Ссылка в новой задаче