Skip to content

Commit 7da2d7f

Browse files
authored
Fix acquire jobs after session refresh ghalistener (#3307)
1 parent e06c7ed commit 7da2d7f

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

cmd/ghalistener/listener/listener.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -384,9 +384,9 @@ func (l *Listener) acquireAvailableJobs(ctx context.Context, jobsAvailable []*ac
384384

385385
l.logger.Info("Acquiring jobs", "count", len(ids), "requestIds", fmt.Sprint(ids))
386386

387-
ids, err := l.client.AcquireJobs(ctx, l.scaleSetID, l.session.MessageQueueAccessToken, ids)
387+
idsAcquired, err := l.client.AcquireJobs(ctx, l.scaleSetID, l.session.MessageQueueAccessToken, ids)
388388
if err == nil { // if NO errors
389-
return ids, nil
389+
return idsAcquired, nil
390390
}
391391

392392
expiredError := &actions.MessageQueueTokenExpiredError{}
@@ -398,12 +398,12 @@ func (l *Listener) acquireAvailableJobs(ctx context.Context, jobsAvailable []*ac
398398
return nil, err
399399
}
400400

401-
ids, err = l.client.AcquireJobs(ctx, l.scaleSetID, l.session.MessageQueueAccessToken, ids)
401+
idsAcquired, err = l.client.AcquireJobs(ctx, l.scaleSetID, l.session.MessageQueueAccessToken, ids)
402402
if err != nil {
403403
return nil, fmt.Errorf("failed to acquire jobs after session refresh: %w", err)
404404
}
405405

406-
return ids, nil
406+
return idsAcquired, nil
407407
}
408408

409409
func (l *Listener) refreshSession(ctx context.Context) error {

cmd/ghalistener/listener/listener_test.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -628,9 +628,6 @@ func TestListener_acquireAvailableJobs(t *testing.T) {
628628
}
629629
client.On("RefreshMessageSession", ctx, mock.Anything, mock.Anything).Return(session, nil).Once()
630630

631-
// First call to AcquireJobs will fail with a token expired error
632-
client.On("AcquireJobs", ctx, mock.Anything, mock.Anything, mock.Anything).Return(nil, &actions.MessageQueueTokenExpiredError{}).Once()
633-
634631
// Second call to AcquireJobs will succeed
635632
want := []int64{1, 2, 3}
636633
availableJobs := []*actions.JobAvailable{
@@ -650,7 +647,24 @@ func TestListener_acquireAvailableJobs(t *testing.T) {
650647
},
651648
},
652649
}
653-
client.On("AcquireJobs", ctx, mock.Anything, mock.Anything, mock.Anything).Return(want, nil).Once()
650+
651+
// First call to AcquireJobs will fail with a token expired error
652+
client.On("AcquireJobs", ctx, mock.Anything, mock.Anything, mock.Anything).
653+
Run(func(args mock.Arguments) {
654+
ids := args.Get(3).([]int64)
655+
assert.Equal(t, want, ids)
656+
}).
657+
Return(nil, &actions.MessageQueueTokenExpiredError{}).
658+
Once()
659+
660+
// First call to AcquireJobs will fail with a token expired error
661+
client.On("AcquireJobs", ctx, mock.Anything, mock.Anything, mock.Anything).
662+
Run(func(args mock.Arguments) {
663+
ids := args.Get(3).([]int64)
664+
assert.Equal(t, want, ids)
665+
}).
666+
Return(want, nil).
667+
Once()
654668

655669
config.Client = client
656670

0 commit comments

Comments
 (0)