Skip to content

Commit e1d076c

Browse files
jclulowcodebien
authored andcommitted
cmd/buildlet: handle read-only directories in work area
Fixes golang/go#34980 Change-Id: I9d87e2267529212efc370ca6a858452eb829b5bb Reviewed-on: https://go-review.googlesource.com/c/build/+/201917 Reviewed-by: Brad Fitzpatrick <[email protected]> Run-TryBot: Brad Fitzpatrick <[email protected]> TryBot-Result: Gobot Gobot <[email protected]>
1 parent de9b444 commit e1d076c

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

cmd/buildlet/buildlet.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ var (
7777
// 22: TrimSpace the reverse buildlet's gobuildkey contents
7878
// 23: revdial v2
7979
// 24: removeAllIncludingReadonly
80-
const buildletVersion = 24
80+
// 25: use removeAllIncludingReadonly for all work area cleanup
81+
const buildletVersion = 25
8182

8283
func defaultListenAddr() string {
8384
if runtime.GOOS == "darwin" {
@@ -193,12 +194,7 @@ func main() {
193194
wdName += "-" + *reverseType
194195
}
195196
dir := filepath.Join(os.TempDir(), wdName)
196-
if err := os.RemoveAll(dir); err != nil { // should be no-op
197-
log.Fatal(err)
198-
}
199-
if err := os.Mkdir(dir, 0755); err != nil {
200-
log.Fatal(err)
201-
}
197+
removeAllAndMkdir(dir)
202198
*workDir = dir
203199
}
204200
}
@@ -1831,10 +1827,10 @@ func initBaseUnixEnv() {
18311827
}
18321828
}
18331829

1834-
// removeAllAndMkdir calls os.RemoveAll and then os.Mkdir on the given
1830+
// removeAllAndMkdir calls removeAllIncludingReadonly and then os.Mkdir on the given
18351831
// dir, failing the process if either step fails.
18361832
func removeAllAndMkdir(dir string) {
1837-
if err := os.RemoveAll(dir); err != nil {
1833+
if err := removeAllIncludingReadonly(dir); err != nil {
18381834
log.Fatal(err)
18391835
}
18401836
if err := os.Mkdir(dir, 0755); err != nil {

0 commit comments

Comments
 (0)