| Index: src/scripts/enter_chroot.sh
|
| diff --git a/src/scripts/enter_chroot.sh b/src/scripts/enter_chroot.sh
|
| index 3c196a93136cd46c1c2257dd383092646308cd2c..33aad4bea3ef67e493c0805b4fcfd1f9177fadca 100755
|
| --- a/src/scripts/enter_chroot.sh
|
| +++ b/src/scripts/enter_chroot.sh
|
| @@ -78,25 +78,28 @@ function setup_env {
|
|
|
| # Mount only if not already mounted
|
| MOUNTED_PATH="$(readlink -f "$FLAGS_chroot/proc")"
|
| - if [ -z "$(mount | grep -F "on $MOUNTED_PATH")" ]
|
| + if [ -z "$(mount | grep -F "on $MOUNTED_PATH ")" ]
|
| then
|
| - sudo mount none -t proc "$MOUNTED_PATH"
|
| + sudo mount none -t proc "$MOUNTED_PATH" || \
|
| + die "Could not mount $MOUNTED_PATH"
|
| fi
|
|
|
| MOUNTED_PATH="$(readlink -f "$FLAGS_chroot/dev/pts")"
|
| - if [ -z "$(mount | grep -F "on $MOUNTED_PATH")" ]
|
| + if [ -z "$(mount | grep -F "on $MOUNTED_PATH ")" ]
|
| then
|
| - sudo mount none -t devpts "$MOUNTED_PATH"
|
| + sudo mount none -t devpts "$MOUNTED_PATH" || \
|
| + die "Could not mount $MOUNTED_PATH"
|
| fi
|
|
|
| MOUNTED_PATH="$(readlink -f "${FLAGS_chroot}$CHROOT_TRUNK_DIR")"
|
| - if [ -z "$(mount | grep -F "on $MOUNTED_PATH")" ]
|
| + if [ -z "$(mount | grep -F "on $MOUNTED_PATH ")" ]
|
| then
|
| - sudo mount --bind "$FLAGS_trunk" "$MOUNTED_PATH"
|
| + sudo mount --bind "$FLAGS_trunk" "$MOUNTED_PATH" || \
|
| + die "Could not mount $MOUNTED_PATH"
|
| fi
|
|
|
| MOUNTED_PATH="$(readlink -f "${FLAGS_chroot}${INNER_CHROME_ROOT}")"
|
| - if [ -z "$(mount | grep -F "on $MOUNTED_PATH")" ]
|
| + if [ -z "$(mount | grep -F "on $MOUNTED_PATH ")" ]
|
| then
|
| ! CHROME_ROOT="$(readlink -f "$FLAGS_chrome_root")"
|
| if [ -z "$CHROME_ROOT" ]; then
|
| @@ -111,12 +114,13 @@ function setup_env {
|
| echo "$CHROME_ROOT" | \
|
| sudo dd of="${FLAGS_chroot}${CHROME_ROOT_CONFIG}"
|
| mkdir -p "$MOUNTED_PATH"
|
| - sudo mount --bind "$CHROME_ROOT" "$MOUNTED_PATH"
|
| + sudo mount --bind "$CHROME_ROOT" "$MOUNTED_PATH" || \
|
| + die "Could not mount $MOUNTED_PATH"
|
| fi
|
| fi
|
|
|
| MOUNTED_PATH="$(readlink -f "${FLAGS_chroot}${INNER_DEPOT_TOOLS_ROOT}")"
|
| - if [ -z "$(mount | grep -F "on $MOUNTED_PATH")" ]
|
| + if [ -z "$(mount | grep -F "on $MOUNTED_PATH ")" ]
|
| then
|
| if [ $(which gclient 2>/dev/null) ]; then
|
| echo "Mounting depot_tools"
|
| @@ -128,16 +132,11 @@ function setup_env {
|
| fi
|
| fi
|
| fi
|
| - ) 200>>"$LOCKFILE"
|
| + ) 200>>"$LOCKFILE" || die "setup_env failed"
|
| }
|
|
|
| function teardown_env {
|
| # Only teardown if we're the last enter_chroot to die
|
| -
|
| - # We should not return with an error if cleanup has an error. Cleanup is
|
| - # best effort only.
|
| - set +e
|
| -
|
| (
|
| flock 200
|
|
|
| @@ -165,11 +164,13 @@ function teardown_env {
|
| echo "At least one other pid is running in the chroot, so not"
|
| echo "tearing down env."
|
| else
|
| + MOUNTED_PATH=$(readlink -f "$FLAGS_chroot")
|
| echo "Unmounting chroot environment."
|
| - mount | grep "on $(readlink -f "$FLAGS_chroot")" | awk '{print $3}' \
|
| - | xargs -r -L1 sudo umount
|
| + for i in $(mount | grep -F "on $MOUNTED_PATH/" | awk '{print $3}'); do
|
| + sudo umount "$i" || die "Failed to umount $i"
|
| + done
|
| fi
|
| - ) 200>>"$LOCKFILE"
|
| + ) 200>>"$LOCKFILE" || die "teardown_env failed"
|
| }
|
|
|
| if [ $FLAGS_mount -eq $FLAGS_TRUE ]
|
|
|