Unverified Commit a3b3d53d authored by Ben Konyi's avatar Ben Konyi Committed by GitHub

Revert "Revert "Ensure VmService instance is disposed after failed direct...

Revert "Revert "Ensure VmService instance is disposed after failed direct connection attempt (#66123)" (#66164)" (#66377)

This reverts commit 3e6863ab.
parent 2102bb03
......@@ -156,9 +156,10 @@ class FallbackDiscovery {
// Attempt to connect to the VM service 5 times.
int attempts = 0;
Exception firstException;
VmService vmService;
while (attempts < 5) {
try {
final VmService vmService = await _vmServiceConnectUri(
vmService = await _vmServiceConnectUri(
assumedWsUri.toString(),
);
final VM vm = await vmService.getVM();
......@@ -167,15 +168,17 @@ class FallbackDiscovery {
isolateRefs.id,
);
final LibraryRef library = isolateResponse.rootLib;
if (library != null && library.uri.startsWith('package:$packageName')) {
if (library != null &&
(library.uri.startsWith('package:$packageName') ||
library.uri.startsWith(RegExp(r'file:\/\/\/.*\/' + packageName)))) {
UsageEvent(
_kEventName,
'success',
flutterUsage: _flutterUsage,
).send();
// We absolutely must dispose this vmService instance, otherwise
// DDS will fail to start.
// This vmService instance must be disposed of, otherwise DDS will
// fail to start.
vmService.dispose();
return Uri.parse('http://localhost:$hostPort');
}
......@@ -184,6 +187,10 @@ class FallbackDiscovery {
// No action, we might have failed to connect.
firstException ??= err;
_logger.printTrace(err.toString());
} finally {
// This vmService instance must be disposed of, otherwise DDS will
// fail to start.
vmService?.dispose();
}
// No exponential backoff is used here to keep the amount of time the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment