Skip to content
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

[multicast_dns] Rewrite _readFQDN to avoid recursion #8390

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

andrewkolos
Copy link
Contributor

@andrewkolos andrewkolos commented Jan 7, 2025

Speculatively fixes flutter/flutter#155433. Read one of my later comments on that thread for my current understanding of this issue. In summary, this PR rewrites _readFQDN to avoid recursion.

For reviewers: For a simplified diff, see the first commit, change. This commit avoids formatting make sure the diff only highlights changes to logic rather than formatting.

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@andrewkolos andrewkolos requested a review from jmagman as a code owner January 7, 2025 22:52
@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!).

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@andrewkolos andrewkolos requested review from bkonyi and removed request for jmagman January 7, 2025 22:53
Copy link

@bkonyi bkonyi left a comment

Choose a reason for hiding this comment

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

This change LGTM overall, but I'm wondering if it's just going to cause us to get into an infinite loop rather than a stack overflow, which is going to be much harder to identify.

Since we can't catch the stack overflow error, I wonder if it's worth adding a top-level debug property here that contains the packet that's currently being processed. Then, the tool can add use a timer to determine if we're spending too much time processing the MDNS response to dump a base64 encoded packet to the terminal along with a message asking users to file a bug and share the packet contents with us (assuming they're comfortable sharing it since it could possibly contain PII in the domain). WDYT?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Oops; flutter has exited unexpectedly: "Stack Overflow".
2 participants