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

rename() on directory fails when setting up chromium build environment #1726

Closed
therealkenc opened this issue Feb 25, 2017 · 2 comments
Closed

Comments

@therealkenc
Copy link
Collaborator

therealkenc commented Feb 25, 2017

Setting up the chromium build environment on 15042 fails in a python script with OSError: permission denied. It builds okay on native (natch), and also built okay on earlier WSL, even since before Anniversary Update. I can't definitively point at a WSL regression (i.e. introduced misbehavior), because there are too many moving parts. The last time I looked was back in November, and enough has changed in Ubuntu userspace since then that the change could be python, libraries, or who knows. I don't think it is a change in the chromium package proper, because I tried rolling back to the same version I was using back then and get the same error.

I'm not lovin' the repro here either. Distilled from Google's instructions:

mkdir somewhere && cd somewhere
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH="$PATH:$PWD/depot_tools"
mkdir chromium && cd chromium
fetch --nohooks chromium     # find something else to do for a while
cd src
build/install-build-deps.sh  # step probably not strictly necessary to repro
mkdir strace
strace -ff -o strace/gclient gclient runhooks
grep EACCES strace/*

The error in gclient runhooks is:

lstat("/home/ken/Devel/chromium/src/native_client/toolchain/linux_x86/nacl_arm_glibc/arm-nacl/libexec", 0x7fffe1799960) = -1 ENOENT (No such file or directory)
stat("/home/ken/Devel/chromium/src/native_client/toolchain/linux_x86/nacl_arm_glibc/arm-nacl/libexec", 0x7fffe1799970) = -1 ENOENT (No such file or directory)
rename("/home/ken/Devel/chromium/src/native_client/toolchain/linux_x86/nacl_arm_glibc/.tmp/arm-nacl/libexec", "/home/ken/Devel/chromium/src/native_client/toolchain/linux_x86/nacl_arm_glibc/arm-nacl/libexec") = -1 EACCES (Permission denied)

Of some interest is that .../.tmp/arm-nacl/libexec has permission 0700, which is a little unusual. I checked native, and .../libexec is 0700 there too after the successful rename.

Wondering if it is related to #640 (message). I mention it because running gclient runhooks as root doesn't help. [But you do get a cool message from Google saying "Running depot tools as root is sad."]

@benhillis
Copy link
Member

Thanks for the repro, @therealkenc. I'll give this a shot today and see if I can figure out what's falling over.

@therealkenc
Copy link
Collaborator Author

therealkenc commented Apr 22, 2017

Going to close this one out; the issue count suffers enough around here already. GN still has a beef with #1353, but that is unrelated to this issue tracker. The only package that gclient runhooks above was having a problem with (of the many packages it has to deal with) is nacl_arm_glibc, and something appears to have changed on Google's side since February to (likely unintentionally) right the problem. The above repro steps won't fail off master as of this writing, anyway.

I am also going to speculate that the EACCES problem with rename() is an open file handle related thing like #1529, and hauling down hundreds of megabytes of Chrome isn't the right way to observe filesystem problems. So, until next time...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants