-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Made FlutterTextField that outlive FlutterTextPlatformNode not crash #37735
Conversation
f62d642
to
fa924c7
Compare
Do you have the error message of the test that failed? It feels weird that the even loop is holding and accessing the api of FlutterTextField even if the FlutterTextPlatformNode has been destroyed |
Yea, if you look at the linked issue I have all the debugging information there. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks for looking into this
@chunhtai no problem, do you think this represents a problem that in practical use of flutter on macos that should be hotfixed? |
…115672) * a76ec9158 Roll Fuchsia Linux SDK from lnmSnyJi-2H07tBnV... to WdtwlLEce90PjFJ9z... (flutter/engine#37747) * 44e2f5854 [Impeller] Change texture upload pipeline in Vulkan (flutter/engine#37623) * 6a3ad3c14 Roll Skia from 345bceacd298 to 5270b1d26b5f (4 revisions) (flutter/engine#37748) * 01271891c Do not abort if a MultiFrameCodec is unable to allocate a bitmap buffer (flutter/engine#37534) * 54232a4c3 Roll Skia from 5270b1d26b5f to cf967e6b1c00 (5 revisions) (flutter/engine#37751) * 30aa3cc38 [fuchsia][a11y] Set explicit hit regions in flatland embedder (flutter/engine#37338) * da07c33d2 Make NotifyIdle reject close and past deadlines. (flutter/engine#37737) * e3844cc1e Add third_party/dart/third_party/binaryen/src as a dependency (flutter/engine#37749) * aeb2cd95b [Impeller] use SSBOs for gradients where supported (metal/vulkan) (flutter/engine#37654) * e8aa1c192 Roll Skia from cf967e6b1c00 to f1f59de17204 (2 revisions) (flutter/engine#37756) * 4311774fb [Impeller] register modern shaders on Vulkan too (flutter/engine#37757) * 8e4a718d0 Made FlutterTextField that outlive FlutterTextPlatformNode not crash (flutter/engine#37735) * 446a09dfc [macOS] Use consistent filenames for tests (flutter/engine#37755) * 7a390f97c Roll Skia from f1f59de17204 to 12f01bc5b57e (1 revision) (flutter/engine#37760)
…lutter#115672) * a76ec9158 Roll Fuchsia Linux SDK from lnmSnyJi-2H07tBnV... to WdtwlLEce90PjFJ9z... (flutter/engine#37747) * 44e2f5854 [Impeller] Change texture upload pipeline in Vulkan (flutter/engine#37623) * 6a3ad3c14 Roll Skia from 345bceacd298 to 5270b1d26b5f (4 revisions) (flutter/engine#37748) * 01271891c Do not abort if a MultiFrameCodec is unable to allocate a bitmap buffer (flutter/engine#37534) * 54232a4c3 Roll Skia from 5270b1d26b5f to cf967e6b1c00 (5 revisions) (flutter/engine#37751) * 30aa3cc38 [fuchsia][a11y] Set explicit hit regions in flatland embedder (flutter/engine#37338) * da07c33d2 Make NotifyIdle reject close and past deadlines. (flutter/engine#37737) * e3844cc1e Add third_party/dart/third_party/binaryen/src as a dependency (flutter/engine#37749) * aeb2cd95b [Impeller] use SSBOs for gradients where supported (metal/vulkan) (flutter/engine#37654) * e8aa1c192 Roll Skia from cf967e6b1c00 to f1f59de17204 (2 revisions) (flutter/engine#37756) * 4311774fb [Impeller] register modern shaders on Vulkan too (flutter/engine#37757) * 8e4a718d0 Made FlutterTextField that outlive FlutterTextPlatformNode not crash (flutter/engine#37735) * 446a09dfc [macOS] Use consistent filenames for tests (flutter/engine#37755) * 7a390f97c Roll Skia from f1f59de17204 to 12f01bc5b57e (1 revision) (flutter/engine#37760)
…lutter#115672) * a76ec9158 Roll Fuchsia Linux SDK from lnmSnyJi-2H07tBnV... to WdtwlLEce90PjFJ9z... (flutter/engine#37747) * 44e2f5854 [Impeller] Change texture upload pipeline in Vulkan (flutter/engine#37623) * 6a3ad3c14 Roll Skia from 345bceacd298 to 5270b1d26b5f (4 revisions) (flutter/engine#37748) * 01271891c Do not abort if a MultiFrameCodec is unable to allocate a bitmap buffer (flutter/engine#37534) * 54232a4c3 Roll Skia from 5270b1d26b5f to cf967e6b1c00 (5 revisions) (flutter/engine#37751) * 30aa3cc38 [fuchsia][a11y] Set explicit hit regions in flatland embedder (flutter/engine#37338) * da07c33d2 Make NotifyIdle reject close and past deadlines. (flutter/engine#37737) * e3844cc1e Add third_party/dart/third_party/binaryen/src as a dependency (flutter/engine#37749) * aeb2cd95b [Impeller] use SSBOs for gradients where supported (metal/vulkan) (flutter/engine#37654) * e8aa1c192 Roll Skia from cf967e6b1c00 to f1f59de17204 (2 revisions) (flutter/engine#37756) * 4311774fb [Impeller] register modern shaders on Vulkan too (flutter/engine#37757) * 8e4a718d0 Made FlutterTextField that outlive FlutterTextPlatformNode not crash (flutter/engine#37735) * 446a09dfc [macOS] Use consistent filenames for tests (flutter/engine#37755) * 7a390f97c Roll Skia from f1f59de17204 to 12f01bc5b57e (1 revision) (flutter/engine#37760)
The crash happens because there is a dangling pointer when the FlutterTextPlatformNode is deleted but the main event loop has a retain on the FlutterTextField. I'm not sure how problematic this is in practice but it affected tests.
fixes flutter/flutter#115599
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.