Skip to content

Commit 53b3a6e

Browse files
committed
More retry on pub_worker: increased delay factor + more exceptions.
1 parent 6f6ff9c commit 53b3a6e

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

pkg/pub_worker/lib/src/analyze.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ Future<void> _analyzePackage(
205205
final r = await retry(
206206
() => api.taskUploadResult(package, version),
207207
retryIf: _retryIf,
208+
delayFactor: Duration(seconds: 5),
208209
);
209210

210211
// Create BlobIndex
@@ -236,6 +237,7 @@ Future<void> _analyzePackage(
236237
await retry(
237238
() => api.taskUploadFinished(package, version),
238239
retryIf: _retryIf,
240+
delayFactor: Duration(seconds: 5),
239241
);
240242
} finally {
241243
await tempDir.delete(recursive: true);
@@ -261,6 +263,7 @@ Future<void> _reportPackageSkipped(
261263
final r = await retry(
262264
() => api.taskUploadResult(package, version),
263265
retryIf: _retryIf,
266+
delayFactor: Duration(seconds: 5),
264267
);
265268

266269
final output = await BlobIndexPair.build(r.blobId, (addFile) async {
@@ -301,6 +304,7 @@ Future<void> _reportPackageSkipped(
301304
await retry(
302305
() => api.taskUploadFinished(package, version),
303306
retryIf: _retryIf,
307+
delayFactor: Duration(seconds: 5),
304308
);
305309
}
306310

pkg/pub_worker/lib/src/upload.dart

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5+
import 'dart:async';
56
import 'dart:io';
67

78
import 'package:_pub_shared/data/package_api.dart' show UploadInfo;
89
import 'package:http/http.dart'
9-
show MultipartRequest, MultipartFile, Client, Response;
10+
show Client, ClientException, MultipartFile, MultipartRequest, Response;
1011
import 'package:http_parser/http_parser.dart' show MediaType;
1112
import 'package:logging/logging.dart' show Logger;
1213
import 'package:meta/meta.dart';
@@ -60,7 +61,13 @@ Future<void> upload(
6061
throw UploadException(
6162
'Unhandled HTTP status = ${res.statusCode}, body: ${res.body}',
6263
);
63-
}, retryIf: (e) => e is IOException || e is IntermittentUploadException);
64+
},
65+
retryIf: (e) =>
66+
e is IOException ||
67+
e is IntermittentUploadException ||
68+
e is ClientException ||
69+
e is TimeoutException,
70+
delayFactor: Duration(seconds: 5));
6471

6572
@sealed
6673
class UploadException implements Exception {

0 commit comments

Comments
 (0)