mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-02 09:47:06 +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()
|
||||
if lookupErr != nil {
|
||||
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 {
|
||||
logger.Info("failed to discover preferred resources", "error", lookupErr)
|
||||
}
|
||||
|
Reference in New Issue
Block a user