Skip to content

Commit

Permalink
fix: only deregister runner if runner was ever inserted (#2082)
Browse files Browse the repository at this point in the history
fixes #2068

Errors can occur after we were adding the `defer` and when we would try
upserting the runner.
This PR makes it so we only add the defer once we have upserted the
runner
  • Loading branch information
matt2e authored Jul 16, 2024
1 parent e0331b2 commit 3bc38d6
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions backend/controller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -540,6 +540,7 @@ func (s *Service) ReplaceDeploy(ctx context.Context, c *connect.Request[ftlv1.Re

func (s *Service) RegisterRunner(ctx context.Context, stream *connect.ClientStream[ftlv1.RegisterRunnerRequest]) (*connect.Response[ftlv1.RegisterRunnerResponse], error) {
initialised := false
deferredDeregistration := false

logger := log.FromContext(ctx)
for stream.Receive() {
Expand All @@ -560,13 +561,6 @@ func (s *Service) RegisterRunner(ctx context.Context, stream *connect.ClientStre
logger.Tracef("Heartbeat received from runner %s", runnerStr)

if !initialised {
// Deregister the runner if the Runner disconnects.
defer func() {
err := s.dal.DeregisterRunner(context.Background(), runnerKey)
if err != nil {
logger.Errorf(err, "Could not deregister runner %s", runnerStr)
}
}()
err = s.pingRunner(ctx, endpoint)
if err != nil {
return nil, fmt.Errorf("runner callback failed: %w", err)
Expand All @@ -590,6 +584,16 @@ func (s *Service) RegisterRunner(ctx context.Context, stream *connect.ClientStre
} else if err != nil {
return nil, err
}
if !deferredDeregistration {
// Deregister the runner if the Runner disconnects.
defer func() {
err := s.dal.DeregisterRunner(context.Background(), runnerKey)
if err != nil {
logger.Errorf(err, "Could not deregister runner %s", runnerStr)
}
}()
deferredDeregistration = true
}

routes, err := s.dal.GetRoutingTable(ctx, nil)
if errors.Is(err, dalerrs.ErrNotFound) {
Expand Down

0 comments on commit 3bc38d6

Please sign in to comment.