Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: src/scripts/enter_chroot.sh

Issue 1158006: Enter chroot can return an error code on cleanup. We make cleanup best effort (Closed)
Patch Set: Created 10 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 2
3 # Copyright (c) 2009 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2009 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # Script to enter the chroot environment 7 # Script to enter the chroot environment
8 8
9 # Load common constants. This should be the first executable line. 9 # Load common constants. This should be the first executable line.
10 # The path to common.sh should be relative to your script's location. 10 # The path to common.sh should be relative to your script's location.
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 echo "This may impact chromium build." 127 echo "This may impact chromium build."
128 fi 128 fi
129 fi 129 fi
130 fi 130 fi
131 ) 200>>"$LOCKFILE" 131 ) 200>>"$LOCKFILE"
132 } 132 }
133 133
134 function teardown_env { 134 function teardown_env {
135 # Only teardown if we're the last enter_chroot to die 135 # Only teardown if we're the last enter_chroot to die
136 136
137 # We should not return with an error if cleanup has an error. Cleanup is
138 # best effort only.
139 set +e
140
137 ( 141 (
138 flock 200 142 flock 200
139 143
140 # check each pid in $LOCKFILE to see if it's died unexpectedly 144 # check each pid in $LOCKFILE to see if it's died unexpectedly
141 TMP_LOCKFILE="$LOCKFILE.tmp" 145 TMP_LOCKFILE="$LOCKFILE.tmp"
142 146
143 echo -n > "$TMP_LOCKFILE" # Erase/reset temp file 147 echo -n > "$TMP_LOCKFILE" # Erase/reset temp file
144 cat "$LOCKFILE" | while read PID; do 148 cat "$LOCKFILE" | while read PID; do
145 if [ "$PID" = "$$" ]; then 149 if [ "$PID" = "$$" ]; then
146 # ourself, leave PROC_NAME empty 150 # ourself, leave PROC_NAME empty
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 222
219 # Run command or interactive shell. Also include the non-chrooted path to 223 # Run command or interactive shell. Also include the non-chrooted path to
220 # the source trunk for scripts that may need to print it (e.g. 224 # the source trunk for scripts that may need to print it (e.g.
221 # build_image.sh). 225 # build_image.sh).
222 sudo chroot "$FLAGS_chroot" sudo -i -u $USER $CHROOT_PASSTHRU \ 226 sudo chroot "$FLAGS_chroot" sudo -i -u $USER $CHROOT_PASSTHRU \
223 EXTERNAL_TRUNK_PATH="${FLAGS_trunk}" LANG=C "$@" 227 EXTERNAL_TRUNK_PATH="${FLAGS_trunk}" LANG=C "$@"
224 228
225 # Remove trap and explicitly unmount 229 # Remove trap and explicitly unmount
226 trap - EXIT 230 trap - EXIT
227 teardown_env 231 teardown_env
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698