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

Issue 728734 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

run_puppet_tests kills your source checkout

Project Member Reported by akes...@chromium.org, Jun 1 2017

Issue description

run_puppet_tests bind mounts your source checkout into the vagrant vm; vagrant vm then seems to repo init it onto the prod manifest; future innocent repo syncs in 

run_puppet_tests should almost certainly not be bind-mounting anything into the vagrant box, or if is does should be done readonly
 
Workaround for the unlucky.

$ cd $CHROMIUMOS
$ vim .repo/manifests.git/config
# Delete the last line that says group:XXX
$ repo sync

This will bring back your projects and any local branches. There's no way to restore local uncommitted changes if they're lost.

Cc: dgarr...@chromium.org chingcodes@chromium.org
#1 actually didn't work for me earlier, I ended up blowing away checkout entirely and re-syncing.
chingcodes got bit by this too. This is an unacceptable risk. Disabling the script until this is fixed.
Project Member

Comment 4 by bugdroid1@chromium.org, Jun 2 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/chromeos-admin/+/0bdfdda886907fcff597a6a44b9783e9b779748e

commit 0bdfdda886907fcff597a6a44b9783e9b779748e
Author: Aviv Keshet <akeshet@chromium.org>
Date: Fri Jun 02 17:59:32 2017

This is the autotest repo, right?

Currently the bind mount is needed since cloning a fresh autotest repo during each test is very slow (as well as running build_externals).  repo init step should be skipped though, I will take a look.
RE #5 it was more or less all of the git repos in the chromeos manifest, that were blown away.
Re #5: I'm guessing that this is not the autotest repo, but the ~/chromiumos checkout via puppet. It has the chromeos-admin and infra groups enabled...

Two questions: 
[1] If we're bind-mounting the chromiumos repo, why is the puppet repo module trying to init it again? The LICENSE file (which iirc we check for as the result of the operation) should already exist.

[2] Can we bindmount RO so that such problems will just cause the test to fail without screwing up the developers' checkout?


The LICENSE file only controls repo sync I believe, so it won't repo sync again. repo init is always run to make sure the manifests are up to date.

Will look into mounting RO.
Project Member

Comment 9 by bugdroid1@chromium.org, Jun 15 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/chromeos-admin/+/64d58a2dea38d8cf4342c342e50b77848a9ac084

commit 64d58a2dea38d8cf4342c342e50b77848a9ac084
Author: Allen Li <ayatane@chromium.org>
Date: Thu Jun 15 00:50:51 2017

Status: Fixed (was: Assigned)
The "kill" part is fixed since we now mount readonly
Project Member

Comment 11 by bugdroid1@chromium.org, Jun 30 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/chromeos-admin/+/50b6b3a7c6c80d2c7328b272745136460c675c12

commit 50b6b3a7c6c80d2c7328b272745136460c675c12
Author: Allen Li <ayatane@google.com>
Date: Fri Jun 30 17:46:10 2017

Sign in to add a comment