Skip to content
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 unsafe reuse of broccoli trees in OneShot #1064

Merged
merged 1 commit into from Jan 6, 2022
Merged

Commits on Jan 6, 2022

  1. Fix unsafe reuse of broccoli trees in OneShot

    The OneShot transform consumes a broccoli tree a single time, detaching us permanently from future updates to that tree, which avoids needing to revalidate all the third-party v1-to-v2 addon conversion during rebuilds.
    
    Since OneShot fully consumes a broccoli tree in a separate broccoli pipeline, it's not safe to consume that same tree again in a different pipeline.
    
    But an addon can manipulate cacheKeyForTree such that two distinct copies of an addon emit the same broccoli tree instance as their v2Tree, which we send into OneShot. This fails in a very byzantine way.
    
    It's the source of the problems people have been having with test-waiters (#1056) because that addon aggressively tries to deduplicate itself.
    
    The fix is to not rerun OneShot if we encounter an identical tree a second time.
    ef4 committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    8f45383 View commit details
    Browse the repository at this point in the history