Skip to content

Commit 61604e1

Browse files
author
Marvin Zhang
committed
fix(task/handler): ensure latest gRPC client is used for task fetch/subscribe
Add svc.getGrpcClient() helper and use it when obtaining TaskClient so task fetch and subscribe operations don't hold a stale client instance after ResetGrpcClient().
1 parent 4baa5fa commit 61604e1

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

core/task/handler/service.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,12 @@ func (svc *Service) GetNodeConfigService() (cfgSvc interfaces.NodeConfigService)
288288
return svc.cfgSvc
289289
}
290290

291+
// getGrpcClient returns the current gRPC client, ensuring we always have the latest instance
292+
// This is important after ResetGrpcClient() calls which create new client instances
293+
func (svc *Service) getGrpcClient() *grpcclient.GrpcClient {
294+
return grpcclient.GetGrpcClient()
295+
}
296+
291297
func (svc *Service) getCurrentNodeMaxRunners() int {
292298
n, err := svc.GetCurrentNode()
293299
if err != nil {
@@ -450,7 +456,7 @@ func (svc *Service) fetchTask() (tid primitive.ObjectID, err error) {
450456
// Use service context with timeout for fetch operation
451457
ctx, cancel := context.WithTimeout(svc.ctx, svc.fetchTimeout)
452458
defer cancel()
453-
taskClient, err := svc.c.GetTaskClient()
459+
taskClient, err := svc.getGrpcClient().GetTaskClient()
454460
if err != nil {
455461
return primitive.NilObjectID, fmt.Errorf("failed to get task client: %v", err)
456462
}

core/task/handler/service_operations.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ func (svc *Service) subscribeTaskWithContext(ctx context.Context, taskId primiti
9898
req := &grpc.TaskServiceSubscribeRequest{
9999
TaskId: taskId.Hex(),
100100
}
101-
taskClient, err := svc.c.GetTaskClient()
101+
taskClient, err := svc.getGrpcClient().GetTaskClient()
102102
if err != nil {
103103
return nil, fmt.Errorf("failed to get task client: %v", err)
104104
}

0 commit comments

Comments
 (0)