Merge "Increase per-process file limits for multiproduct_kati" am: a4823680a1 am: c3730769ad

am: 71758ebc8a

Change-Id: If00a4a215862fc48f2b4f1e34c5e169160663bc7
This commit is contained in:
Dan Willemsen 2017-12-12 01:01:22 +00:00 committed by android-build-merger
commit f733226950

View file

@ -24,6 +24,7 @@ import (
"runtime"
"strings"
"sync"
"syscall"
"time"
"android/soong/ui/build"
@ -159,6 +160,30 @@ func (s *Status) Finished() int {
return s.failed
}
// TODO(b/70370883): This tool uses a lot of open files -- over the default
// soft limit of 1024 on some systems. So bump up to the hard limit until I fix
// the algorithm.
func setMaxFiles(log logger.Logger) {
var limits syscall.Rlimit
err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &limits)
if err != nil {
log.Println("Failed to get file limit:", err)
return
}
log.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 {
log.Println("Failed to increase file limit:", err)
}
}
func inList(str string, list []string) bool {
for _, other := range list {
if str == other {
@ -228,6 +253,8 @@ func main() {
trace.SetOutput(filepath.Join(config.OutDir(), "build.trace"))
}
setMaxFiles(log)
vars, err := build.DumpMakeVars(buildCtx, config, nil, []string{"all_named_products"})
if err != nil {
log.Fatal(err)