From 84d29664c471b80dbdd3ef92d224f69bec7130a7 Mon Sep 17 00:00:00 2001 From: JieJhih Jhang Date: Sun, 21 Apr 2019 16:28:46 +0800 Subject: [PATCH] handle file close error --- cmd/kube-proxy/app/server.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/cmd/kube-proxy/app/server.go b/cmd/kube-proxy/app/server.go index efea3697fe9..a6b234f19f6 100644 --- a/cmd/kube-proxy/app/server.go +++ b/cmd/kube-proxy/app/server.go @@ -334,7 +334,7 @@ func (o *Options) runLoop() error { } } -func (o *Options) writeConfigFile() error { +func (o *Options) writeConfigFile() (err error) { const mediaType = runtime.ContentTypeYAML info, ok := runtime.SerializerInfoForMediaType(o.codecs.SupportedMediaTypes(), mediaType) if !ok { @@ -347,10 +347,15 @@ func (o *Options) writeConfigFile() error { if err != nil { return err } - // TODO handle error - defer configFile.Close() - if err := encoder.Encode(o.config, configFile); err != nil { + defer func() { + ferr := configFile.Close() + if ferr != nil && err == nil { + err = ferr + } + }() + + if err = encoder.Encode(o.config, configFile); err != nil { return err }