diff options
| author | 2023-11-08 22:09:57 -0800 | |
|---|---|---|
| committer | 2023-11-08 22:11:28 -0800 | |
| commit | 611a2fbdd7a01bce4046db364f7af7000d69ffa1 (patch) | |
| tree | d013a40ccb3ca4177cca183c1177def64776e274 | |
| parent | f2fab8347d88216afa60826ea7741435d680acbb (diff) | |
Fix soong_ui file rlimits for go 1.21
Go 1.21 modifies the file limit but restores the original when
execing subprocesses if it hasn't be overridden. Call Setrlimit
even if it doesn't appear to be necessary so that the syscall package
considers it set.
Bug: 309895579
Test: m nothing
Change-Id: I4d0b27bac90a2a88bfc68a8491d54dc106e1ec13
| -rw-r--r-- | cmd/soong_ui/main.go | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/cmd/soong_ui/main.go b/cmd/soong_ui/main.go index 18cba776b..4484a483c 100644 --- a/cmd/soong_ui/main.go +++ b/cmd/soong_ui/main.go @@ -680,9 +680,11 @@ func setMaxFiles(ctx build.Context) { } ctx.Verbosef("Current file limits: %d soft, %d hard", limits.Cur, limits.Max) - if limits.Cur == limits.Max { - return - } + + // Go 1.21 modifies the file limit but restores the original when + // execing subprocesses if it hasn't be overridden. Call Setrlimit + // here even if it doesn't appear to be necessary so that the + // syscall package considers it set. limits.Cur = limits.Max err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &limits) |