Index: tools/gardening/lib/src/client.dart |
diff --git a/tools/gardening/lib/src/client.dart b/tools/gardening/lib/src/client.dart |
index 0257f5c8a1519fcd55dffc594a109d9c97486185..eb09ac8f38554dff970e3ddef0a6a66ebdd1d277 100644 |
--- a/tools/gardening/lib/src/client.dart |
+++ b/tools/gardening/lib/src/client.dart |
@@ -26,8 +26,11 @@ abstract class BuildbotClient { |
class HttpBuildbotClient implements BuildbotClient { |
final HttpClient _client = new HttpClient(); |
+ static const int maxSkips = 3; |
+ |
@override |
Future<BuildResult> readResult(BuildUri buildUri) async { |
+ int skips = 0; |
Duration timeout; |
if (buildUri.buildNumber < 0) { |
timeout = new Duration(seconds: 1); |
@@ -43,13 +46,15 @@ class HttpBuildbotClient implements BuildbotClient { |
try { |
return await readBuildResultFromHttp(_client, buildUri, timeout); |
} on TimeoutException { |
- if (timeout != null) { |
+ if (timeout != null && skips < maxSkips) { |
+ skips++; |
skipToPreviousBuildNumber(); |
continue; |
} |
return null; |
} on HttpException { |
- if (timeout != null) { |
+ if (timeout != null && skips < maxSkips) { |
+ skips++; |
skipToPreviousBuildNumber(); |
continue; |
} |