-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
fix a hanging issue with strongly consistent reads #7067
Merged
Merged
+52
−15
Conversation
This file contains 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
The latest updates on your projects. Learn more about Vercel for Git ↗︎
9 Ignored Deployments
|
sokra
changed the title
Sokra/fix hanging
fix a hanging issue with strongly consistent reads
Jan 22, 2024
🟢 Turbopack Benchmark CI successful 🟢Thanks |
✅ This change can build |
🟢 CI successful 🟢Thanks |
ForsakenHarmony
approved these changes
Jan 22, 2024
timneutkens
added a commit
to vercel/next.js
that referenced
this pull request
Jan 23, 2024
* vercel/turborepo#7067 <!-- Tobias Koppers - fix a hanging issue with strongly consistent reads --> * vercel/turborepo#7068 <!-- Tobias Koppers - add lazy_remove_children feature flag --> * vercel/turborepo#7073 <!-- OJ Kwon - fix(ecmascript): collect recoverable error after parse --> --------- Co-authored-by: Tim Neutkens <tim@timneutkens.nl>
ForsakenHarmony
pushed a commit
to vercel/next.js
that referenced
this pull request
Jul 25, 2024
…7067) ### Description This fixes a bug where inactive tasks get stuck in "in progress" which causes the updateInfo stream to be incorrect (not ending). It can happen when * a task reads something strongly consistent * the task (subgraph) is not active (e.g. was removed due to changes) In this case the strongly consistent read will never finish as it waits for the subgraph to finish, but dirty tasks in that subgraph won't be scheduled as the subgraph is not active. This PR fixes that by making a subgraph that is currently strongly consistently read temporarily active (while being read). That's similar to normal read scheduling dirty tasks. We never want in progress tasks to be blocked by anything. Any blocker should be resolved by executing tasks. Potential alternative: We could also change dirty tasks to not count as pending. That would also allow any strongly consistent read to complete, but it won't be consistent with changes that caused these tasks to be dirty. Closes PACK-2268
ForsakenHarmony
pushed a commit
to vercel/next.js
that referenced
this pull request
Jul 29, 2024
…7067) ### Description This fixes a bug where inactive tasks get stuck in "in progress" which causes the updateInfo stream to be incorrect (not ending). It can happen when * a task reads something strongly consistent * the task (subgraph) is not active (e.g. was removed due to changes) In this case the strongly consistent read will never finish as it waits for the subgraph to finish, but dirty tasks in that subgraph won't be scheduled as the subgraph is not active. This PR fixes that by making a subgraph that is currently strongly consistently read temporarily active (while being read). That's similar to normal read scheduling dirty tasks. We never want in progress tasks to be blocked by anything. Any blocker should be resolved by executing tasks. Potential alternative: We could also change dirty tasks to not count as pending. That would also allow any strongly consistent read to complete, but it won't be consistent with changes that caused these tasks to be dirty. Closes PACK-2268
ForsakenHarmony
pushed a commit
to vercel/next.js
that referenced
this pull request
Jul 29, 2024
…7067) ### Description This fixes a bug where inactive tasks get stuck in "in progress" which causes the updateInfo stream to be incorrect (not ending). It can happen when * a task reads something strongly consistent * the task (subgraph) is not active (e.g. was removed due to changes) In this case the strongly consistent read will never finish as it waits for the subgraph to finish, but dirty tasks in that subgraph won't be scheduled as the subgraph is not active. This PR fixes that by making a subgraph that is currently strongly consistently read temporarily active (while being read). That's similar to normal read scheduling dirty tasks. We never want in progress tasks to be blocked by anything. Any blocker should be resolved by executing tasks. Potential alternative: We could also change dirty tasks to not count as pending. That would also allow any strongly consistent read to complete, but it won't be consistent with changes that caused these tasks to be dirty. Closes PACK-2268
ForsakenHarmony
pushed a commit
to vercel/next.js
that referenced
this pull request
Aug 1, 2024
…7067) ### Description This fixes a bug where inactive tasks get stuck in "in progress" which causes the updateInfo stream to be incorrect (not ending). It can happen when * a task reads something strongly consistent * the task (subgraph) is not active (e.g. was removed due to changes) In this case the strongly consistent read will never finish as it waits for the subgraph to finish, but dirty tasks in that subgraph won't be scheduled as the subgraph is not active. This PR fixes that by making a subgraph that is currently strongly consistently read temporarily active (while being read). That's similar to normal read scheduling dirty tasks. We never want in progress tasks to be blocked by anything. Any blocker should be resolved by executing tasks. Potential alternative: We could also change dirty tasks to not count as pending. That would also allow any strongly consistent read to complete, but it won't be consistent with changes that caused these tasks to be dirty. Closes PACK-2268
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.
Description
This fixes a bug where inactive tasks get stuck in "in progress" which causes the updateInfo stream to be incorrect (not ending).
It can happen when
In this case the strongly consistent read will never finish as it waits for the subgraph to finish, but dirty tasks in that subgraph won't be scheduled as the subgraph is not active.
This PR fixes that by making a subgraph that is currently strongly consistently read temporarily active (while being read).
That's similar to normal read scheduling dirty tasks.
We never want in progress tasks to be blocked by anything. Any blocker should be resolved by executing tasks.
Potential alternative: We could also change dirty tasks to not count as pending. That would also allow any strongly consistent read to complete, but it won't be consistent with changes that caused these tasks to be dirty.
Closes PACK-2268