Skip to content

Reland "Re-enable the Dart Development Service (DDS) (#64671)"#65873

Merged
bkonyi merged 6 commits into
masterfrom
reland_dds_again
Sep 16, 2020
Merged

Reland "Re-enable the Dart Development Service (DDS) (#64671)"#65873
bkonyi merged 6 commits into
masterfrom
reland_dds_again

Conversation

@bkonyi

@bkonyi bkonyi commented Sep 15, 2020

Copy link
Copy Markdown
Contributor

Changes from last attempt:

  • DDS has IPv6 support, a requirement for google3 development.
  • No longer hijacking --host-vmservice-port to be used by DDS as this breaks google3 remote workflows.
  • Added --dds-port to allow specifying the port that DDS will bind to. If not provided, a random port is chosen.

@flutter-dashboard flutter-dashboard Bot added c: contributor-productivity Team-specific productivity, code health, technical debt. tool Affects the "flutter" command-line tool. See also t: labels. labels Sep 15, 2020
@bkonyi bkonyi changed the title [WIP] Reland "Re-enable the Dart Development Service (DDS) (#64671)" Reland "Re-enable the Dart Development Service (DDS) (#64671)" Sep 16, 2020
@bkonyi

bkonyi commented Sep 16, 2020

Copy link
Copy Markdown
Contributor Author

cc @mehmetf: tested both failures we were seeing in google3 (coverage and run) and we seem good to go. Will let you know when this lands so we can keep an eye on things once it makes it into google3.

Comment thread packages/flutter_tools/test/general.shard/ios/ios_device_start_prebuilt_test.dart Outdated
@jonahwilliams

Copy link
Copy Markdown
Contributor

Could we roll the latest version of dds into g3 first so that the google testing shard can be up to date?

@bkonyi

bkonyi commented Sep 16, 2020

Copy link
Copy Markdown
Contributor Author

Could we roll the latest version of dds into g3 first so that the google testing shard can be up to date?

Yup, already done. Re-running the testing shard now.

…_prebuilt_test.dart

Co-authored-by: Jonah Williams <jonahwilliams@google.com>
@fluttergithubbot

Copy link
Copy Markdown
Contributor

This pull request is not suitable for automatic merging in its current state.

  • Please get at least one approved review before re-applying this label. Reviewers: If you left a comment approving, please use the "approve" review action instead.

@jonahwilliams jonahwilliams left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@bkonyi bkonyi merged commit a17b330 into master Sep 16, 2020
@bkonyi bkonyi deleted the reland_dds_again branch September 16, 2020 23:27
bkonyi added a commit that referenced this pull request Sep 17, 2020
PR #65873 enabled DDS for non-web Flutter applications. This change
surfaced a bug where DDS would not send ServiceRegistered events to VM
service clients when they subscribed to the Service stream. This would
cause tools and tests that rely on these events (e.g., hot reload in
VSCode) to fail.

Fixes #66038.
bkonyi added a commit that referenced this pull request Sep 17, 2020
PR #65873 enabled DDS for non-web Flutter applications. This change
surfaced a bug where DDS would not send ServiceRegistered events to VM
service clients when they subscribed to the Service stream. This would
cause tools and tests that rely on these events (e.g., hot reload in
VSCode) to fail.

Fixes #66038.
@liyuqian

Copy link
Copy Markdown
Contributor

This has broken the flutter_gallery_sksl_warmup__transition_perf_e2e_ios32 device lab test with the following error. (That test was flaky previously but now it consistently failed.)

2020-09-16T22:55:42.935523: run stdout: [   +4 ms] Connecting to service protocol: http://127.0.0.1:53874/
2020-09-16T22:55:42.936722: run stdout: [   +1 ms] Launching a Dart Developer Service (DDS) instance at http://127.0.0.1:0, connecting to VM service at http://127.0.0.1:53874/.
2020-09-16T22:55:43.026712: run stderr: [  +89 ms] Warning: Failed to start DDS: Existing VM service clients prevent DDS from taking control.
2020-09-16T22:55:43.028895: run stderr: 
2020-09-16T22:55:43.031466: run stderr: [   +4 ms] Oops; flutter has exited unexpectedly: "DartDevelopmentServiceException: Existing VM service clients prevent DDS from taking control.".
2020-09-16T22:55:43.056298: run stdout: [  +24 ms] executing: [/Users/flutter/.cocoon/flutter/] git -c log.showSignature=false log -n 1 --pretty=format:%ar
2020-09-16T22:55:43.064511: run stdout: [   +7 ms] Exit code 0 from: git -c log.showSignature=false log -n 1 --pretty=format:%ar
2020-09-16T22:55:43.064611: run stdout: [        ] 6 hours ago
2020-09-16T22:55:43.076722: run stdout: [  +11 ms] executing: /Users/flutter/.cocoon/flutter/bin/cache/artifacts/engine/android-arm-profile/darwin-x64/gen_snapshot
2020-09-16T22:55:43.088409: run stdout: [  +11 ms] Exit code 255 from: /Users/flutter/.cocoon/flutter/bin/cache/artifacts/engine/android-arm-profile/darwin-x64/gen_snapshot
/Users/flutter/.cocoon/flutter/bin/cache/artifacts/engine/android-arm-profile/darwin-x64/gen_snapshot
2020-09-16T22:47:52.899495: run stdout: [        ] At least one input is required
run stdout:            Usage: gen_snapshot [<vm-flags>] [<options>] <dart-kernel-file>             
run stdout: 
run stdout:            Common options:                                                             
run stdout:            --help                                                                      
run stdout:              Display this message (add --verbose for information about all VM options).
run stdout:            --version                                                                   
run stdout:              Print the SDK version.                                                    
run stdout: 
run stdout:            To create a core snapshot:                                                  
run stdout:            --snapshot_kind=core                                                        
run stdout:            --vm_snapshot_data=<output-file>                                            
run stdout:            --isolate_snapshot_data=<output-file>                                       
run stdout:            <dart-kernel-file>                                                          
run stdout: 
run stdout:            To create an AOT application snapshot as assembly suitable for compilation  
run stdout:            as a static or dynamic library:                                             
run stdout:            --snapshot_kind=app-aot-assembly                                            
run stdout:            --assembly=<output-file>                                                    
run stdout:            [--strip]                                                                   
run stdout:            [--obfuscate]                                                               
run stdout:            [--save-debugging-info=<debug-filename>]                                    
run stdout:            [--save-obfuscation-map=<map-filename>]                                     
run stdout:            <dart-kernel-file>                                                          
run stdout: 
run stdout:            To create an AOT application snapshot as an ELF shared library:             
run stdout:            --snapshot_kind=app-aot-elf                                                 
run stdout:            --elf=<output-file>                                                         
run stdout:            [--strip]                                                                   
run stdout:            [--obfuscate]                                                               
run stdout:            [--save-debugging-info=<debug-filename>]                                    
run stdout:            [--save-obfuscation-map=<map-filename>]                                     
run stdout:            <dart-kernel-file>                                                          
run stdout: 
run stdout:            AOT snapshots can be obfuscated: that is all identifiers will be renamed    
run stdout:            during compilation. This mode is enabled with --obfuscate flag. Mapping     
2020-09-16T22:47:52.899582: run stdout:            between original and obfuscated names can be serialized as a JSON array     
run stdout:            using --save-obfuscation-map=<filename> option. See dartbug.com/30524       
run stdout:            for implementation details and limitations of the obfuscation pass.
2020-09-16T22:47:52.900072: run stdout: [        ] executing: sw_vers -productName

Here's the full log:
flutter_gallery_sksl_warmup__transition_perf_e2e_ios32_a17b330_2.log

How can this be fixed, @bkonyi ?

@bkonyi

bkonyi commented Sep 18, 2020

Copy link
Copy Markdown
Contributor Author

@liyuqian I'll investigate and get back to you with a fix today.

goderbauer pushed a commit to goderbauer/flutter that referenced this pull request Sep 18, 2020
PR flutter#65873 enabled DDS for non-web Flutter applications. This change
surfaced a bug where DDS would not send ServiceRegistered events to VM
service clients when they subscribed to the Service stream. This would
cause tools and tests that rely on these events (e.g., hot reload in
VSCode) to fail.

Fixes flutter#66038.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c: contributor-productivity Team-specific productivity, code health, technical debt. tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants