facebook / facebook/buck2

Sometimes fixing a cyclic dependency requires a `buck2 killall`

Open
#495 8 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.