mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-04 18:52:38 +00:00
Fix internal error when serializing groupLookupFailures in log
When garbagecollector failed to look up ServerPreferredResources, it logged the failed groups as "<internal error: json: unsupported type: map[schema.GroupVersion]error>", making the failure more obscure. It's because the logger tried to serialize the value using json encoder but the type map[schema.GroupVersion]error is not supported. Either schema.GroupVersion needs to implement TextMarshaler interface, or we can serialize the type before passing it to the logger. Signed-off-by: Quan Tian <qtian@vmware.com>
This commit is contained in:
@@ -832,7 +832,9 @@ func GetDeletableResources(logger klog.Logger, discoveryClient discovery.ServerR
|
|||||||
preferredResources, lookupErr := discoveryClient.ServerPreferredResources()
|
preferredResources, lookupErr := discoveryClient.ServerPreferredResources()
|
||||||
if lookupErr != nil {
|
if lookupErr != nil {
|
||||||
if groupLookupFailures, isLookupFailure := discovery.GroupDiscoveryFailedErrorGroups(lookupErr); isLookupFailure {
|
if groupLookupFailures, isLookupFailure := discovery.GroupDiscoveryFailedErrorGroups(lookupErr); isLookupFailure {
|
||||||
logger.Info("failed to discover some groups", "groups", groupLookupFailures)
|
// Serialize groupLookupFailures here as map[schema.GroupVersion]error is not json encodable, otherwise the
|
||||||
|
// logger would throw internal error.
|
||||||
|
logger.Info("failed to discover some groups", "groups", fmt.Sprintf("%q", groupLookupFailures))
|
||||||
} else {
|
} else {
|
||||||
logger.Info("failed to discover preferred resources", "error", lookupErr)
|
logger.Info("failed to discover preferred resources", "error", lookupErr)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user