mirror of
https://github.com/golang/go
synced 2024-11-18 08:04:40 -07:00
syscall: copy original rlimit before modifying
CL 531516 converted origRlimitNofile from an atomic.Value to atomic.Pointer[Rlimit]. i.e., it changed from storing a value to storing a pointer. After storing a pointer to lim, the remainder of this function immediately modifies it, thus mutating the value pointer to by origRlimitNofile (and thus defeating the point of origRlimitNofile). This broke the android-amd64-emu builder because it is (apparently) the only builder where the original RLIMIT_NOFILE Cur != Max. TestRlimitRestored is skipped on every other builder. Change-Id: I12076350eeddfd221823ad651e7e7eca59d2bdcd Reviewed-on: https://go-review.googlesource.com/c/go/+/532100 Run-TryBot: Michael Pratt <mpratt@google.com> Auto-Submit: Michael Pratt <mpratt@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
This commit is contained in:
parent
ef3171c5eb
commit
122b35e838
@ -31,9 +31,10 @@ func init() {
|
||||
var lim Rlimit
|
||||
if err := Getrlimit(RLIMIT_NOFILE, &lim); err == nil && lim.Cur != lim.Max {
|
||||
origRlimitNofile.Store(&lim)
|
||||
lim.Cur = lim.Max
|
||||
adjustFileLimit(&lim)
|
||||
setrlimit(RLIMIT_NOFILE, &lim)
|
||||
nlim := lim
|
||||
nlim.Cur = nlim.Max
|
||||
adjustFileLimit(&nlim)
|
||||
setrlimit(RLIMIT_NOFILE, &nlim)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user