Merge "In Soong, set max files soft limit to hard limit" am: 26cb965d2f am: af351356ed am: 21b694316a

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1978314

Change-Id: I255f0912a416c64c3267217ab0dd9a23eafdf9e6
This commit is contained in:
Treehugger Robot 2022-02-10 00:01:35 +00:00 committed by Automerger Merge Worker
commit 0a34c5bee7

View file

@ -205,14 +205,7 @@ func main() {
buildCtx.Verbosef("Parallelism (local/remote/highmem): %v/%v/%v", buildCtx.Verbosef("Parallelism (local/remote/highmem): %v/%v/%v",
config.Parallel(), config.RemoteParallel(), config.HighmemParallel()) config.Parallel(), config.RemoteParallel(), config.HighmemParallel())
{ setMaxFiles(buildCtx)
var limits syscall.Rlimit
err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &limits)
if err != nil {
buildCtx.Verbosef("Failed to get file limit:", err)
}
buildCtx.Verbosef("Current file limits: %d soft, %d hard", limits.Cur, limits.Max)
}
{ {
// The order of the function calls is important. The last defer function call // The order of the function calls is important. The last defer function call
@ -614,3 +607,24 @@ func populateExternalDistDirHelper(ctx build.Context, config build.Config, inter
} }
} }
} }
func setMaxFiles(ctx build.Context) {
var limits syscall.Rlimit
err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &limits)
if err != nil {
ctx.Println("Failed to get file limit:", err)
return
}
ctx.Verbosef("Current file limits: %d soft, %d hard", limits.Cur, limits.Max)
if limits.Cur == limits.Max {
return
}
limits.Cur = limits.Max
err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &limits)
if err != nil {
ctx.Println("Failed to increase file limit:", err)
}
}