Version 2.3.0-dev.0.1
* Cherry-pick 43eebea5a3715d7c3904cd85a35db5cffaae687e to dev
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 124f50a..4e6ff08 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.3.0-dev.0.1
+
+* Cherry-pick 43eebea5a3715d7c3904cd85a35db5cffaae687e to dev
+
## 2.3.0-dev.0.0
### Tool Changes
diff --git a/tools/VERSION b/tools/VERSION
index cf8239f..a90ee68 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -34,6 +34,6 @@
MINOR 3
PATCH 0
PRERELEASE 0
-PRERELEASE_PATCH 0
+PRERELEASE_PATCH 1
ABI_VERSION 4
OLDEST_SUPPORTED_ABI_VERSION 1
diff --git a/utils/bazel/kernel_worker.dart b/utils/bazel/kernel_worker.dart
index 3723077..c866ed2 100644
--- a/utils/bazel/kernel_worker.dart
+++ b/utils/bazel/kernel_worker.dart
@@ -53,11 +53,24 @@
} else {
previousState = null;
}
- var result = await computeKernel(request.arguments,
- isWorker: true,
- outputBuffer: outputBuffer,
- inputs: request.inputs,
- previousState: previousStateToPass);
+ ComputeKernelResult result;
+ // TODO(vsm): See https://github.com/dart-lang/sdk/issues/36644.
+ // If the CFE is crashing with previous state, then clear compilation
+ // state and try again.
+ try {
+ result = await computeKernel(request.arguments,
+ isWorker: true,
+ outputBuffer: outputBuffer,
+ inputs: request.inputs,
+ previousState: previousStateToPass);
+ } catch (_) {
+ outputBuffer.clear();
+ result = await computeKernel(request.arguments,
+ isWorker: true,
+ outputBuffer: outputBuffer,
+ inputs: request.inputs,
+ previousState: null);
+ }
previousState = result.previousState;
if (!result.succeeded) {
response.exitCode = 15;