[Fiber] Fix infinite loop in scheduler and add more tests#8172
Merged
gaearon merged 4 commits intofacebook:masterfrom Nov 1, 2016
Merged
[Fiber] Fix infinite loop in scheduler and add more tests#8172gaearon merged 4 commits intofacebook:masterfrom
gaearon merged 4 commits intofacebook:masterfrom
Conversation
It hangs forever because we don't clear next pointer when unscheduling a root. Therefore, when it's scheduled again, it brings all its previous chain with it, potentially creating a cycle.
Collaborator
Author
|
Tests are passing. Something else at the end of test task fails travis. |
sebmarkbage
approved these changes
Nov 1, 2016
Contributor
sebmarkbage
left a comment
There was a problem hiding this comment.
Ok.
Btw I think we might maybe need to commit all the roots at once rather than one at a time as they complete. I'm not quite sure yet though.
| return null; | ||
| } | ||
| nextScheduledRoot = nextScheduledRoot.nextScheduledRoot; | ||
| // Consider unscheduling next root. |
Contributor
There was a problem hiding this comment.
what does this comment mean? Isn't that what you're doing above?
Contributor
|
You need to run the script tracking script. |
Fixes a potential infinite cycle when we reschedule a root.
2776ca8 to
ccfa58b
Compare
acusti
pushed a commit
to brandcast/react
that referenced
this pull request
Mar 15, 2017
) * Make test more complete * Add a failing test for scheduling in reverse order It hangs forever because we don't clear next pointer when unscheduling a root. Therefore, when it's scheduled again, it brings all its previous chain with it, potentially creating a cycle. * Clear the next pointer when unscheduling a root Fixes a potential infinite cycle when we reschedule a root. * Add new tests to Fiber test tracker
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Added a test that schedules roots in the reverse order compared to the previous time they were scheduled.
It hangs forever because we don't clear next pointer when unscheduling a root. Therefore, when it's scheduled again, it brings all its previous chain with it, potentially creating a cycle.
Fixed by clearing out the next pointer when unscheduling.