You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
781 B
26 lines
781 B
// Copyright 2021 The ChromiumOS Authors
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"strings"
|
|
)
|
|
|
|
// crbug.com/1166017
|
|
|
|
const kernelBugRetryLimit = 25
|
|
|
|
// GCC will sometimes fail to wait on subprocesses due to this kernel bug. It always fails the
|
|
// compilation and prints "Unknown error 512" in that case.
|
|
func containsTracesOfKernelBug(buf []byte) bool {
|
|
return bytes.Contains(buf, []byte("Unknown error 512"))
|
|
}
|
|
|
|
func errorContainsTracesOfKernelBug(err error) bool {
|
|
// We'll get errors that look like "waitid: errno 512." Presumably, this isn't specific to
|
|
// waitid, so just try to match the "errno 512" ending.
|
|
return err != nil && strings.HasSuffix(err.Error(), "errno 512")
|
|
}
|