Sometimes fixing a cyclic dependency requires a `buck2 killall`
- Dominant language
- Rust
- Stars
- 4.4k
- Forks
- 394
- PR merge metrics
- No merged PRs in 30d
Description
I wish I could provide a minimal repro of this. I've tried and have been unable to figure it out.
Often times I introduce a cycle in my dependency tree. I do a build, and the build almost completes, and then at the very last step after almost all actions are run, I get an error saying there was a cycle. I go and fix the cycle by simply deleting one of the deps in one of the targets to break it. But buck2 immediately complains about a cycle again. No matter what I do, I cannot get it to keep running. If I do a `buck2 killall` and then re-run the build, without touching any other files, it (strangely) restarts the entire build. All actions re-run. Then at the end, it doesn't complain about the cyclic dependency.
I'm going to keep working on a repro, as I can't provide my actual graph. But hopefully someone who understands the internals well can get an idea from this alone. It seems like it's caching something about the dependency tree and not properly invalidating it when the configuration changes.
Contributor guide
Assessment
This issue has not been assessed yet.