|
|
Created:
4 years, 4 months ago by Yoshisato Yanagisawa Modified:
4 years, 3 months ago CC:
chromium-reviews Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionShow detailed difference on unexpected difference.
Show object file difference to make it easy to distinguish what
caused the difference.
BUG=314403
Committed: https://crrev.com/83bdd08debd6f7691d61ba8b827146642f09d8ec
Cr-Commit-Position: refs/heads/master@{#414979}
Patch Set 1 #
Total comments: 8
Patch Set 2 : rename before ninja, do not expect deps are different. #Messages
Total messages: 13 (4 generated)
yyanagisawa@chromium.org changed reviewers: + dpranke@chromium.org, maruel@chromium.org
Currently, it is difficult for me to go into details on why two binaries are different. Let me show difference of object files that are used for making targets to make it easy to understand why.
lgtm
https://codereview.chromium.org/2278493002/diff/1/tools/determinism/compare_b... File tools/determinism/compare_build_artifacts.py (right): https://codereview.chromium.org/2278493002/diff/1/tools/determinism/compare_b... tools/determinism/compare_build_artifacts.py:505: out = subprocess.check_output(['ninja', '-C', build_dir, There's a problem as the directory was renamed, so calling ninja after the directory was renamed will likely not result in the expected outcome, as the ninja files may have absolute paths. So it is important to rename the directory :/ before calling ninja. https://codereview.chromium.org/2278493002/diff/1/tools/determinism/compare_b... tools/determinism/compare_build_artifacts.py:527: deps = set(first_deps).union(set(second_deps)) the difference should be empty ?
https://codereview.chromium.org/2278493002/diff/1/tools/determinism/compare_b... File tools/determinism/compare_build_artifacts.py (right): https://codereview.chromium.org/2278493002/diff/1/tools/determinism/compare_b... tools/determinism/compare_build_artifacts.py:505: out = subprocess.check_output(['ninja', '-C', build_dir, On 2016/08/24 18:47:27, M-A Ruel wrote: > There's a problem as the directory was renamed, so calling ninja after the > directory was renamed will likely not result in the expected outcome, as the > ninja files may have absolute paths. So it is important to rename the directory > :/ before calling ninja. I have never seen absolute object file path names but I am not confident. Let me rename to possibly original directory, and warn and skip if absolute object file path is used. https://codereview.chromium.org/2278493002/diff/1/tools/determinism/compare_b... tools/determinism/compare_build_artifacts.py:527: deps = set(first_deps).union(set(second_deps)) On 2016/08/24 18:47:27, M-A Ruel wrote: > the difference should be empty ? I am not confident. However, I will simplify the code expecting no difference between first_deps and second_deps.
lgtm anyhow, the rest can be done later. https://codereview.chromium.org/2278493002/diff/1/tools/determinism/compare_b... File tools/determinism/compare_build_artifacts.py (right): https://codereview.chromium.org/2278493002/diff/1/tools/determinism/compare_b... tools/determinism/compare_build_artifacts.py:505: out = subprocess.check_output(['ninja', '-C', build_dir, On 2016/08/25 08:47:29, Yoshisato Yanagisawa wrote: > On 2016/08/24 18:47:27, M-A Ruel wrote: > > There's a problem as the directory was renamed, so calling ninja after the > > directory was renamed will likely not result in the expected outcome, as the > > ninja files may have absolute paths. So it is important to rename the > directory > > :/ before calling ninja. > > I have never seen absolute object file path names but I am not confident. Let > me rename to possibly original directory, and warn and skip if absolute object > file path is used. zforman@ worked on making this work on linux but this is likely not the case on OSX and Windows, probably worth double checking on at least one of the other platform eventually. https://codereview.chromium.org/2278493002/diff/1/tools/determinism/compare_b... tools/determinism/compare_build_artifacts.py:527: deps = set(first_deps).union(set(second_deps)) On 2016/08/25 08:47:29, Yoshisato Yanagisawa wrote: > On 2016/08/24 18:47:27, M-A Ruel wrote: > > the difference should be empty ? > > I am not confident. However, I will simplify the code expecting no difference > between first_deps and second_deps. I guess my question was more to print out the differences to be able to monitor when this happens.
thanks for the review, I am going to run CQ. https://codereview.chromium.org/2278493002/diff/1/tools/determinism/compare_b... File tools/determinism/compare_build_artifacts.py (right): https://codereview.chromium.org/2278493002/diff/1/tools/determinism/compare_b... tools/determinism/compare_build_artifacts.py:505: out = subprocess.check_output(['ninja', '-C', build_dir, On 2016/08/25 15:46:26, M-A Ruel wrote: > On 2016/08/25 08:47:29, Yoshisato Yanagisawa wrote: > > On 2016/08/24 18:47:27, M-A Ruel wrote: > > > There's a problem as the directory was renamed, so calling ninja after the > > > directory was renamed will likely not result in the expected outcome, as the > > > ninja files may have absolute paths. So it is important to rename the > > directory > > > :/ before calling ninja. > > > > I have never seen absolute object file path names but I am not confident. Let > > me rename to possibly original directory, and warn and skip if absolute object > > file path is used. > > zforman@ worked on making this work on linux but this is likely not the case on > OSX and Windows, probably worth double checking on at least one of the other > platform eventually. I checked the code seems to work on Win. https://codereview.chromium.org/2278493002/diff/1/tools/determinism/compare_b... tools/determinism/compare_build_artifacts.py:527: deps = set(first_deps).union(set(second_deps)) On 2016/08/25 15:46:26, M-A Ruel wrote: > On 2016/08/25 08:47:29, Yoshisato Yanagisawa wrote: > > On 2016/08/24 18:47:27, M-A Ruel wrote: > > > the difference should be empty ? > > > > I am not confident. However, I will simplify the code expecting no difference > > between first_deps and second_deps. > > I guess my question was more to print out the differences to be able to monitor > when this happens. I think current code still help us to find this kind of difference, not clearly mentions which one is larger, though. Let me update the code when we actually see this case.
The CQ bit was checked by yyanagisawa@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from dpranke@chromium.org Link to the patchset: https://codereview.chromium.org/2278493002/#ps20001 (title: "rename before ninja, do not expect deps are different.")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Committed patchset #2 (id:20001)
Message was sent while issue was closed.
Description was changed from ========== Show detailed difference on unexpected difference. Show object file difference to make it easy to distinguish what caused the difference. BUG=314403 ========== to ========== Show detailed difference on unexpected difference. Show object file difference to make it easy to distinguish what caused the difference. BUG=314403 Committed: https://crrev.com/83bdd08debd6f7691d61ba8b827146642f09d8ec Cr-Commit-Position: refs/heads/master@{#414979} ==========
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/83bdd08debd6f7691d61ba8b827146642f09d8ec Cr-Commit-Position: refs/heads/master@{#414979} |