@@ -83,14 +83,6 @@ func checkForUpgrades(ctx context.Context, url, versionString string, backoff wa
8383 isOpenShift bool ) (message string , header string , err error ) {
8484 var headerPayloadStruct * clientUpgradeData
8585
86- // Guard against panics within the checkForUpgrades function to allow the
87- // checkForUpgradesScheduler to reschedule a check
88- defer func () {
89- if panicErr := recover (); panicErr != nil {
90- err = fmt .Errorf ("%s" , panicErr )
91- }
92- }()
93-
9486 // Prep request
9587 req , err := http .NewRequest ("GET" , url , nil )
9688 if err == nil {
@@ -151,13 +143,6 @@ func CheckForUpgradesScheduler(ctx context.Context,
151143 cacheClient CacheWithWait ,
152144) {
153145 log := logging .FromContext (ctx )
154- defer func () {
155- if err := recover (); err != nil {
156- log .V (1 ).Info ("encountered panic in upgrade check" ,
157- "response" , err ,
158- )
159- }
160- }()
161146
162147 if url == "" {
163148 url = upgradeCheckURL
@@ -174,30 +159,38 @@ func CheckForUpgradesScheduler(ctx context.Context,
174159 return
175160 }
176161
177- info , header , err := checkForUpgrades (ctx , url , versionString , backoff ,
178- crclient , cfg , isOpenShift )
179- if err != nil {
180- log .V (1 ).Info ("could not complete upgrade check" ,
181- "response" , err .Error ())
182- } else {
183- log .Info (info , clientHeader , header )
184- }
162+ check (ctx , versionString , url , crclient , cfg , isOpenShift )
185163
186164 ticker := time .NewTicker (upgradeCheckPeriod )
187165 for {
188166 select {
189167 case <- ticker .C :
190- info , header , err = checkForUpgrades (ctx , url , versionString , backoff ,
191- crclient , cfg , isOpenShift )
192- if err != nil {
193- log .V (1 ).Info ("could not complete scheduled upgrade check" ,
194- "response" , err .Error ())
195- } else {
196- log .Info (info , clientHeader , header )
197- }
168+ check (ctx , versionString , url , crclient , cfg , isOpenShift )
198169 case <- ctx .Done ():
199170 ticker .Stop ()
200171 return
201172 }
202173 }
203174}
175+
176+ func check (ctx context.Context ,
177+ versionString , url string , crclient crclient.Client ,
178+ cfg * rest.Config , isOpenShift bool ,
179+ ) {
180+ log := logging .FromContext (ctx )
181+
182+ defer func () {
183+ if v := recover (); v != nil {
184+ log .V (1 ).Info ("encountered panic in upgrade check" , "response" , v )
185+ }
186+ }()
187+
188+ info , header , err := checkForUpgrades (ctx ,
189+ url , versionString , backoff , crclient , cfg , isOpenShift )
190+
191+ if err != nil {
192+ log .V (1 ).Info ("could not complete upgrade check" , "response" , err .Error ())
193+ } else {
194+ log .Info (info , clientHeader , header )
195+ }
196+ }
0 commit comments