-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Delete marker file before fetching an external repository #14302
Conversation
Fetching a repository is a long-running operation that can easily be interrupted. If it is and the marker file exists on disk, a new evaluation of the RepositoryDelegatorFunction may treat this repository as valid even though it is in an inconsistent state. Clearing the marker file before initiating the fetch and only recreating it after the fetch is complete prevents this scenario. Fixes bazelbuild#8993.
LGTM, but let's ask Yun, too! :D |
Hmm, I don't think this is necessary. Because:
Do you have a minimal reproducible case that we can look into? |
This is correct.
As far as I can tell, this is not true when dealing with a managed directory: The marker file only tracks the existence of the managed directory, not its contents. If the Every project using
At that point, the build failure is persistent and can only be resolved by deleting |
I see, that makes sense now, basically unfinished |
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.
Thanks for the fix and explaination!
This is a nice little bug fix. Think we can cherry-pick it into 5.0? |
Fetching a repository is a long-running operation that can easily be interrupted. If it is and the marker file exists on disk, a new evaluation of the RepositoryDelegatorFunction may treat this repository as valid even though it is in an inconsistent state. Clearing the marker file before initiating the fetch and only recreating it after the fetch is complete prevents this scenario. Fixes bazelbuild#8993. Closes bazelbuild#14302. PiperOrigin-RevId: 412101756
Fetching a repository is a long-running operation that can easily be interrupted. If it is and the marker file exists on disk, a new evaluation of the RepositoryDelegatorFunction may treat this repository as valid even though it is in an inconsistent state. Clearing the marker file before initiating the fetch and only recreating it after the fetch is complete prevents this scenario. Fixes bazelbuild#8993. Closes bazelbuild#14302. PiperOrigin-RevId: 412101756
I submitted it for both 5.0.0 and 4.2.2. |
Fetching a repository is a long-running operation that can easily be interrupted. If it is and the marker file exists on disk, a new evaluation of the RepositoryDelegatorFunction may treat this repository as valid even though it is in an inconsistent state. Clearing the marker file before initiating the fetch and only recreating it after the fetch is complete prevents this scenario. Fixes #8993. Closes #14302. PiperOrigin-RevId: 412101756
Fetching a repository is a long-running operation that can easily be interrupted. If it is and the marker file exists on disk, a new evaluation of the RepositoryDelegatorFunction may treat this repository as valid even though it is in an inconsistent state. Clearing the marker file before initiating the fetch and only recreating it after the fetch is complete prevents this scenario. Fixes #8993. Closes #14302. PiperOrigin-RevId: 412101756
Fetching a repository is a long-running operation that can easily be interrupted. If it is and the marker file exists on disk, a new evaluation of the RepositoryDelegatorFunction may treat this repository as valid even though it is in an inconsistent state. Clearing the marker file before initiating the fetch and only recreating it after the fetch is complete prevents this scenario. Fixes bazelbuild#8993. Closes bazelbuild#14302. PiperOrigin-RevId: 412101756
Fetching a repository is a long-running operation that can easily be
interrupted. If it is and the marker file exists on disk, a new
evaluation of the RepositoryDelegatorFunction may treat this repository
as valid even though it is in an inconsistent state.
Clearing the marker file before initiating the fetch and only recreating
it after the fetch is complete prevents this scenario.
Fixes #8993.