Skip to content

Commit 04cd161

Browse files
authored
log incoming vm service messages in FlutterVMService::runInView (#148596)
In service of flutter/flutter#146879. Please see flutter/flutter#146879 (comment). In summary, when the test flakes, `onRunnable` is not completing despite the VmService object receiving an `IsolateRunnable` event. This PR adds some logging code to print all events received inside of `FlutterVmService::runInView`.
1 parent d9cf066 commit 04cd161

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

packages/flutter_tools/lib/src/vmservice.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,7 +581,23 @@ class FlutterVmService {
581581
);
582582
// Do nothing, since the tool is already subscribed.
583583
}
584+
585+
// TODO(andrewkolos): this is to assist in troubleshooting https://github.com/flutter/flutter/issues/146879
586+
// and should be reverted once this issue is resolved.
587+
unawaited(service.onReceive.firstWhere((String message) {
588+
_logger.printTrace('runInView VM service onReceive listener received "$message"');
589+
final dynamic messageAsJson = jsonDecode(message);
590+
// ignore: avoid_dynamic_calls -- Temporary code.
591+
final dynamic messageKind = messageAsJson['params']?['event']?['kind'];
592+
if (messageKind == 'IsolateRunnable') {
593+
_logger.printTrace('Received IsolateRunnable event from onReceive.');
594+
return true;
595+
}
596+
return false;
597+
}));
598+
584599
final Future<void> onRunnable = service.onIsolateEvent.firstWhere((vm_service.Event event) {
600+
_logger.printTrace('runInView VM service onIsolateEvent listener received $event');
585601
return event.kind == vm_service.EventKind.kIsolateRunnable;
586602
});
587603
_logger.printTrace('Calling $kRunInViewMethod...');

0 commit comments

Comments
 (0)