aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ui/build/config.go18
-rw-r--r--ui/build/kati.go3
2 files changed, 16 insertions, 5 deletions
diff --git a/ui/build/config.go b/ui/build/config.go
index f5007b1b..e21e1fab 100644
--- a/ui/build/config.go
+++ b/ui/build/config.go
@@ -319,13 +319,21 @@ func (c *configImpl) HostPrebuiltTag() string {
}
}
-func (c *configImpl) PrebuiltBuildTool(name string) string {
+func (c *configImpl) HostAsan() bool {
if v, ok := c.environ.Get("SANITIZE_HOST"); ok {
if sanitize := strings.Fields(v); inList("address", sanitize) {
- asan := filepath.Join("prebuilts/build-tools", c.HostPrebuiltTag(), "asan/bin", name)
- if _, err := os.Stat(asan); err == nil {
- return asan
- }
+ return true
+ }
+ }
+ return false
+}
+
+func (c *configImpl) PrebuiltBuildTool(name string) string {
+ // (b/36182021) We're seeing rare ckati crashes, so always enable asan kati on the build servers.
+ if c.HostAsan() || (c.Dist() && name == "ckati") {
+ asan := filepath.Join("prebuilts/build-tools", c.HostPrebuiltTag(), "asan/bin", name)
+ if _, err := os.Stat(asan); err == nil {
+ return asan
}
}
return filepath.Join("prebuilts/build-tools", c.HostPrebuiltTag(), "bin", name)
diff --git a/ui/build/kati.go b/ui/build/kati.go
index f29d0c19..972b5591 100644
--- a/ui/build/kati.go
+++ b/ui/build/kati.go
@@ -100,6 +100,9 @@ func runKati(ctx Context, config Config) {
}
cmd.Stderr = cmd.Stdout
+ // Kati leaks memory, so ensure leak detection is turned off
+ cmd.Environment.Set("ASAN_OPTIONS", "detect_leaks=0")
+
cmd.StartOrFatal()
katiRewriteOutput(ctx, pipe)
cmd.WaitOrFatal()