New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 696495 link

Starred by 8 users

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 3
Type: Bug



Sign in to add a comment

gclient runs (and fails on) the 'libyuv/cleanup_links.py' prehook but is not suppsoed to recurse into that

Project Member Reported by primiano@chromium.org, Feb 27 2017

Issue description

TL;DR
I think that there is a bug in gclient which makes mistakenly run the prehooks for a nested DEPS file (third_party/libyuv/DEPS) which is NOT reachable by the toplevel DEPS recursedeps section.

Today I found three colleagues affected by this while running gclient sync:
________ running '/usr/bin/python libyuv/cleanup_links.py' in '/usr/local/google/code3/chromium' /usr/bin/python: can't open file 'libyuv/cleanup_links.py': [Errno 2] No such file or directory Error: Command '/usr/bin/python libyuv/cleanup_links.py' returned non-zero exit status 2 in /usr/local/google/code3/chromium

libyuv/cleanup_links.py is a prehook in third_party/libyuv/DEPS which was added recently by https://chromium-review.googlesource.com/436264 .

If I am reading everything correctly, the libyuv DEPS file is supposed to be used only in standalone libyuv checkouts.
In fact, nothing in chromium is mentioning libyuv recursedeps. In other words: it doesn't seem to me that libyuv is doing anything bad here.

Still, when syncing chrome, gclient seems to still recurse into the libyuv deps even if that is not mentioned by recursedeps in src/DEPS. I followed manually all the current recursedeps and none of them seem to reach into libyuv's.

So, unless I am missing something macroscopic, this seems to me a bug in gclient. Maybe due to the fact that libyuv's DEPS uses a prehooks section, which is used very rarely, so a bug might have slipped in there.

Also, not sure if this is related, but all three of us have a
target_os=['android']
in our .gclient config.
I manually inspected the .gclient files of all three and there is nothing unconventional (no other projects being pulled in)





 

Comment 1 by thakis@chromium.org, Feb 27 2017

I'm seeing this too. I also have target_os=android.

Comment 2 by clamy@chromium.org, Feb 27 2017

Cc: clamy@chromium.org
I'm seeing this as well. I also have target_os=android, though removing it from my .gclient config does not seem to fix the issue.
Labels: OS-All
Owner: dpranke@chromium.org
Status: Assigned (was: Untriaged)
Yup, I saw this too. I'll take a look.
Cc: scottmg@chromium.org
I filed  bug 696714  related to this. Feel free to dupe it against this.
Cc: aga...@chromium.org
 Issue 696714  has been merged into this issue.
Cc: eugene...@chromium.org
Project Member

Comment 8 by bugdroid1@chromium.org, Feb 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/depot_tools/+/da3a29e13e816459234b0b08ed1059300bae46dd

commit da3a29e13e816459234b0b08ed1059300bae46dd
Author: Dirk Pranke <dpranke@chromium.org>
Date: Tue Feb 28 23:24:21 2017

Do not run unconditionally run pre_deps_hooks for dependencies.

Currently if you set `pre_deps_hooks` in your gclient DEPS file,
they will be executed regardless of whether your repo was supposed
to be recursed into (via recursionlimit or recursedeps) or not.

This change fixes that so that we only run the hooks that were
explicitly configured to be run.

R=kjellander@chromium.org, agable@chromium.org
BUG= 696495 

Change-Id: Ic0ef641903cf3f56d7c2e119d8b0db862258d995
Reviewed-on: https://chromium-review.googlesource.com/447318
Reviewed-by: Aaron Gable <agable@chromium.org>
Reviewed-by: Henrik Kjellander <kjellander@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>

[modify] https://crrev.com/da3a29e13e816459234b0b08ed1059300bae46dd/gclient.py

Status: Fixed (was: Assigned)

Sign in to add a comment