Skip to content

[CP][stable channel] Ensure start/stop file watching requests are run on the dart thread (Additional Change) #46298

Description

@a-siva

commit(s) to merge: 05e5427

merge instructions: clean merge

What is the issue:

A cherry pick for the original problem was done in #46249, but another issue was noted during the cherry pick review which is addressed by this change.

numerous user reports of the analysis server stopping responding to IDE requests; this is due to the isolate running the analysis server deadlocking when unsubscribing from file watching events

What is the fix:

At present start/stop requests are scheduled on RunLoop thread. This results in deadlocks since same RunLoop thread might be busy with blocking writes of file watching events, not giving a chance for Dart to read previously-written events. Reading would unblock writer.

This fix moves start/stop requests to run on Dart thread instead.

Why cherrypick:
lots of users reports; likely manifesting in a few separate issues
Risk:

The change has rolled into flutter without any issues.

Link to original issue(s):

#45996
/cc @kevmoo @mit-mit @whesse @athomas @vsmenon @franklinyow @a-siva @aam @DanTup

Metadata

Metadata

Assignees

Labels

area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.cherry-pick-approvedLabel for approved cherrypick requestcherry-pick-reviewIssue that need cherry pick triage to approve

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions