]> Cypherpunks repositories - gostls13.git/commit
cmd/go/internal/lockedfile, os: fix O_CREATE flag on Plan 9
authorFazlul Shahriar <fshahriar@gmail.com>
Sat, 9 Nov 2019 21:02:46 +0000 (16:02 -0500)
committerBrad Fitzpatrick <bradfitz@golang.org>
Sat, 9 Nov 2019 22:14:01 +0000 (22:14 +0000)
commit78d4560793de65e21199d3c80e9c901833bdaeba
tree38ef7fe0f28153a5fb066be3f8cb4d6bb42bed82
parent29cfb4d3c3a97b6f426d1b899234da905be699aa
cmd/go/internal/lockedfile, os: fix O_CREATE flag on Plan 9

os.OpenFile was assuming that a failed syscall.Open means the file does
not exist and it tries to create it. However, syscall.Open may have
failed for some other reason, such as failing to lock a os.ModeExclusive
file. We change os.OpenFile to only create the file if the error
indicates that the file doesn't exist.

Remove skip of TestTransform test, which was failing because sometimes
syscall.Open would fail due to the file being locked, but the
syscall.Create would succeed because the file is no longer locked. The
create was truncating the file.

Fixes #35471

Change-Id: I06583b5f8ac33dc90a51cc4fb64f2d8d9c0c2113
Reviewed-on: https://go-review.googlesource.com/c/go/+/206299
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/cmd/go/internal/lockedfile/transform_test.go
src/os/file_plan9.go