Skip to content

Commit 7986bb0

Browse files
authored
Also handle untyped TaskAbortedException in pub_worker. (#8588)
1 parent c8202bb commit 7986bb0

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

pkg/pub_worker/lib/src/analyze.dart

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import 'dart:isolate' show Isolate;
1010

1111
import 'package:_pub_shared/data/task_payload.dart';
1212
import 'package:_pub_shared/pubapi.dart';
13+
import 'package:api_builder/api_builder.dart';
1314
import 'package:clock/clock.dart' show clock;
1415
import 'package:http/http.dart' show Client, ClientException;
1516
import 'package:indexed_blob/indexed_blob.dart';
@@ -67,6 +68,18 @@ Future<void> analyze(Payload payload) async {
6768
client: client.withAuthorization(() => p.token),
6869
);
6970

71+
void warnTaskAborted(Exception e, StackTrace st) {
72+
_log.warning(
73+
'Task was aborted when uploading ${payload.package} / ${p.version}',
74+
e,
75+
st);
76+
}
77+
78+
void shoutTaskError(Object e, StackTrace st) {
79+
_log.shout(
80+
'failed to process ${payload.package} / ${p.version}', e, st);
81+
}
82+
7083
try {
7184
// Skip analysis, if we're past the worker deadline
7285
if (clock.now().isBefore(workerDeadline)) {
@@ -93,13 +106,15 @@ Future<void> analyze(Payload payload) async {
93106
);
94107
}
95108
} on TaskAbortedException catch (e, st) {
96-
_log.warning(
97-
'Task was aborted when uploading ${payload.package} / ${p.version}',
98-
e,
99-
st);
109+
warnTaskAborted(e, st);
110+
} on ApiResponseException catch (e, st) {
111+
if (e.status == 400 && e.code == 'TaskAborted') {
112+
warnTaskAborted(e, st);
113+
} else {
114+
shoutTaskError(e, st);
115+
}
100116
} catch (e, st) {
101-
_log.shout(
102-
'failed to process ${payload.package} / ${p.version}', e, st);
117+
shoutTaskError(e, st);
103118
}
104119
}
105120
} finally {

0 commit comments

Comments
 (0)