Skip to content

Commit 3ba9ebc

Browse files
fix(profiler): make sure retries use the most up-to-date copy of the trailer (#3660)
See b/163319181 that this change fixes. Change-Id: I9d06c3cdab414ed79bd628f0abcbe6efc5cb7b09 Co-authored-by: Maggie Nolan <nolanmar@google.com>
1 parent 1aea7c8 commit 3ba9ebc

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

profiler/profiler.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -300,13 +300,13 @@ func abortedBackoffDuration(md grpcmd.MD) (time.Duration, error) {
300300

301301
type retryer struct {
302302
backoff gax.Backoff
303-
md grpcmd.MD
303+
md *grpcmd.MD
304304
}
305305

306306
func (r *retryer) Retry(err error) (time.Duration, bool) {
307307
st, _ := status.FromError(err)
308308
if st != nil && st.Code() == codes.Aborted {
309-
dur, err := abortedBackoffDuration(r.md)
309+
dur, err := abortedBackoffDuration(*r.md)
310310
if err == nil {
311311
return dur, true
312312
}
@@ -328,7 +328,7 @@ func (a *agent) createProfile(ctx context.Context) *pb.Profile {
328328
}
329329

330330
var p *pb.Profile
331-
md := grpcmd.New(map[string]string{})
331+
md := grpcmd.New(nil)
332332

333333
gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
334334
debugLog("creating a new profile via profiler service")
@@ -350,7 +350,7 @@ func (a *agent) createProfile(ctx context.Context) *pb.Profile {
350350
Max: maxBackoff,
351351
Multiplier: backoffMultiplier,
352352
},
353-
md: md,
353+
md: &md,
354354
}
355355
}))
356356

profiler/profiler_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ func TestRetry(t *testing.T) {
305305
Max: maxBackoff,
306306
Multiplier: backoffMultiplier,
307307
},
308-
md: md,
308+
md: &md,
309309
}
310310

311311
pause, shouldRetry := r.Retry(status.Error(codes.Aborted, ""))
@@ -325,15 +325,14 @@ func TestRetry(t *testing.T) {
325325
}
326326
}
327327

328-
md := grpcmd.New(map[string]string{})
329-
328+
md := grpcmd.New(nil)
330329
r := &retryer{
331330
backoff: gax.Backoff{
332331
Initial: initialBackoff,
333332
Max: maxBackoff,
334333
Multiplier: backoffMultiplier,
335334
},
336-
md: md,
335+
md: &md,
337336
}
338337
for i := 0; i < 100; i++ {
339338
pause, shouldRetry := r.Retry(errors.New(""))

0 commit comments

Comments
 (0)