This commit is contained in:
yxxhero 2026-03-14 10:35:29 +05:30 committed by GitHub
commit 0d7780e885
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 47 additions and 0 deletions

47
pkg/kubedog/init.go Normal file
View File

@ -0,0 +1,47 @@
package kubedog
import (
goContext "context"
"strings"
"sync"
"k8s.io/apimachinery/pkg/util/runtime"
)
var (
errorHandlersInitOnce sync.Once
)
func init() {
initErrorHandlers()
}
func initErrorHandlers() {
errorHandlersInitOnce.Do(func() {
originalHandlers := runtime.ErrorHandlers
// nolint: reassign
runtime.ErrorHandlers = []runtime.ErrorHandler{filterErrorHandler}
// nolint: reassign
runtime.ErrorHandlers = append(runtime.ErrorHandlers, originalHandlers...)
})
}
func filterErrorHandler(ctx goContext.Context, err error, msg string, keysAndValues ...interface{}) {
if err == nil {
return
}
errMsg := err.Error()
if strings.Contains(errMsg, "context canceled") {
return
}
if strings.Contains(errMsg, "Client.Timeout exceeded") {
return
}
for _, handler := range runtime.ErrorHandlers[1:] {
handler(ctx, err, msg, keysAndValues...)
}
}