From f17b630b126bcb609de84853cade3065c5c1f0d9 Mon Sep 17 00:00:00 2001 From: James Houlahan Date: Fri, 18 Nov 2022 10:25:11 +0100 Subject: [PATCH] Other: Fix wrongly installed version When manually installing an update, we want to manually install the latest compatible version (`target`), not the absolute latest version (`latest`). This is obviously a bug in the code because the mutex lock being locked was `targetLock` but we were wrongly trying to install `latest`. --- internal/frontend/grpc/service.go | 1 + internal/frontend/grpc/service_methods.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/frontend/grpc/service.go b/internal/frontend/grpc/service.go index aad19393..a5c9d1ef 100644 --- a/internal/frontend/grpc/service.go +++ b/internal/frontend/grpc/service.go @@ -277,6 +277,7 @@ func (s *Service) watchEvents() { safe.RLock(func() { s.latest = event.Version }, s.latestLock) + _ = s.SendEvent(NewUpdateVersionChangedEvent()) case events.UpdateAvailable: diff --git a/internal/frontend/grpc/service_methods.go b/internal/frontend/grpc/service_methods.go index 1f8b8c84..d70fb08b 100644 --- a/internal/frontend/grpc/service_methods.go +++ b/internal/frontend/grpc/service_methods.go @@ -530,7 +530,7 @@ func (s *Service) InstallUpdate(ctx context.Context, _ *emptypb.Empty) (*emptypb defer s.panicHandler.HandlePanic() safe.RLock(func() { - s.bridge.InstallUpdate(s.latest) + s.bridge.InstallUpdate(s.target) }, s.targetLock) }()