Skip to content

Commit 8efd00d

Browse files
authored
fix(internal/gensupport): don't prematurely close timers (#1856)
quitAfterTimer should only be closed when function breaks or returns as it is created outside of the for loop. Tested with local replacing and fixes failing TestIndefiniteRetries test with the patch. Updates: googleapis/google-cloud-go#7410
1 parent 3fb5b61 commit 8efd00d

File tree

1 file changed

+1
-2
lines changed

1 file changed

+1
-2
lines changed

internal/gensupport/resumable.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,6 @@ func (rx *ResumableUpload) Upload(ctx context.Context) (resp *http.Response, err
209209
}
210210
return prepareReturn(resp, err)
211211
case <-pauseTimer.C:
212-
quitAfterTimer.Stop()
213212
case <-quitAfterTimer.C:
214213
pauseTimer.Stop()
215214
return prepareReturn(resp, err)
@@ -231,7 +230,6 @@ func (rx *ResumableUpload) Upload(ctx context.Context) (resp *http.Response, err
231230
case <-quitAfterTimer.C:
232231
return prepareReturn(resp, err)
233232
default:
234-
quitAfterTimer.Stop()
235233
}
236234

237235
resp, err = rx.transferChunk(ctx)
@@ -243,6 +241,7 @@ func (rx *ResumableUpload) Upload(ctx context.Context) (resp *http.Response, err
243241

244242
// Check if we should retry the request.
245243
if !errorFunc(status, err) {
244+
quitAfterTimer.Stop()
246245
break
247246
}
248247

0 commit comments

Comments
 (0)