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

retain the OutputStore when include scanning #7268

Closed
wants to merge 1 commit into from

Conversation

buchgr
Copy link
Contributor

@buchgr buchgr commented Jan 28, 2019

this avoids information loss about injected output
metadata. this change resolves the TODO.

Progress towards #6862

Copy link
Contributor

@ericfelly ericfelly left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this seems like a good change. any idea why it wasn't implemented like this to begin with? any tests we can add?

@justinhorvitz
Copy link
Contributor

I think that TODO predated 6e9af75#diff-3f905f1f4fdd9e7e4c941d2e860c304a, and therefore wasn't trivial because OutputStore was not yet separated from ActionMetadataHandler. I didn't catch that we could resolve this TODO when I implemented the OutputStore. This looks like a good change to me, but I'm not as familiar with when this code path is triggered.

@lberki
Copy link
Contributor

lberki commented Feb 5, 2019

I'm afraid I'm out of my depth here. Given that there are three engineers that feel that way other than the author of the change, how about declaring thta @buchgr did due diligence and just submitting it, then seeing what breaks?

What about the same code in lines 574 and 652?

https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java#L652
https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java#L574

@buchgr
Copy link
Contributor Author

buchgr commented Feb 5, 2019

@lberki

https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java#L652

this code path is triggered during include scanning which happens before any execution / metadata injection and so I believe re-creating the output store here is benign but should probably also be fixed for easier understanding of the code.

https://github.com/bazelbuild/bazel/blob/master/src/main/java/com/google/devtools/build/lib/skyframe/ActionExecutionFunction.java#L574

This creates the metadatahandler with an outputstore for the first time. so this code path is the initialization logic and legit.

@ericfelly I don't have a good way of testing this. This change is part of a list of changes making it possible to not download remote outputs and I ll be adding integration tests for this change along the way.

@ericfelly
Copy link
Contributor

@janakdr FYI

@lberki
Copy link
Contributor

lberki commented Feb 6, 2019

@buchgr , you're indeed right re: line 574, I didn't read the code thoroughly enough.

@jin
Copy link
Member

jin commented Feb 19, 2019

can this be imported?

@jin jin added the team-Core Skyframe, bazel query, BEP, options parsing, bazelrc label Feb 19, 2019
this avoids information loss about injected output
metadata. this change resolves the TODO.
@buchgr
Copy link
Contributor Author

buchgr commented Feb 26, 2019

yep. I am re-running CI after resolving merge conflicts. will import then.

@bazel-io bazel-io closed this in 5ce05a0 Feb 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla: yes team-Core Skyframe, bazel query, BEP, options parsing, bazelrc
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants