Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

[core] Fix GeometryTile race condition #11570

Closed
wants to merge 1 commit into from

Conversation

ChrisLoer
Copy link
Contributor

I was almost there with the first fix, but it still left a hole open. @ansis, would you have time to put some eyes on this? The timing is really tricky to think about.

The good news is that @friedbunny set me up with a branch where I could reproduce easily, log what was happening, and verify that this fix made the crash go away.

Follow up fix for issue #11538.
This closes a hole in the logic where:

  • Layout result 1 arrived
  • Symbols arrives for result 1, it was marked ready for commit
  • Layout result 2 arrived, clearing "ready for commit" state
  • Global placement ran on symbols for result 1, but layout result 1 data wasn't committed because it had been replaced with layout result 2.

/cc @jfirebaugh @ansis @friedbunny @julianrex @tobrun

@jfirebaugh
Copy link
Contributor

I think we should bite the bullet and do #10457. It's just too difficult to reason about two phase loading to have confidence we've fixed this for good and there aren't more bugs lurking here.

Follow up fix for issue #11538.
This closes a hole in the logic where:
- Layout result 1 arrived
- Symbols arrives for result 1, it was marked ready for commit
- Layout result 2 arrived, clearing "ready for commit" state
- Global placement ran on symbols for result 1, but layout result 1 data wasn't committed because it had been replaced with layout result 2.
@ChrisLoer
Copy link
Contributor Author

I'm working on a second PR that tries fixing this via #10457. I'm wary of introducing new problems by tugging on all that logic, but I'll try working through it to see how manageable it feels.

@friedbunny friedbunny added the Core The cross-platform C++ core, aka mbgl label Mar 30, 2018
@fabian-guerra fabian-guerra added the release blocker Blocks the next final release label Apr 2, 2018
@ChrisLoer
Copy link
Contributor Author

Abandoned in favor of #11575.

@ChrisLoer ChrisLoer closed this Apr 2, 2018
@ChrisLoer ChrisLoer deleted the cloer-11538-mulligan branch April 2, 2018 17:56
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Core The cross-platform C++ core, aka mbgl release blocker Blocks the next final release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants