Merge "Improve soong stuck ninja detection output" into main

This commit is contained in:
Colin Cross
2024-01-11 18:01:57 +00:00
committed by Gerrit Code Review

View File

@@ -271,11 +271,13 @@ func (c *ninjaStucknessChecker) check(ctx Context, config Config) {
// The Ninja file hasn't been modified since the last time it was
// checked, so Ninja could be stuck. Output some diagnostics.
ctx.Verbosef("ninja may be stuck; last update to %v was %v. dumping process tree...", c.logPath, newModTime)
ctx.Printf("ninja may be stuck, check %v for list of running processes.",
filepath.Join(config.LogsDir(), config.logsPrefix+"soong.log"))
// The "pstree" command doesn't exist on Mac, but "pstree" on Linux
// gives more convenient output than "ps" So, we try pstree first, and
// ps second
commandText := fmt.Sprintf("pstree -pal %v || ps -ef", os.Getpid())
commandText := fmt.Sprintf("pstree -palT %v || ps -ef", os.Getpid())
cmd := Command(ctx, config, "dump process tree", "bash", "-c", commandText)
output := cmd.CombinedOutputOrFatal()