From 83f900d764797f0e7e55a43dc85a42f9b0096ac3 Mon Sep 17 00:00:00 2001 From: Britt Gresham Date: Mon, 29 Aug 2022 19:59:07 +0000 Subject: [PATCH 1/2] core/runner: Fix server panic when runner is forgotten Before this commit when Waypoint was determining whether or not to remove a Runner from boltdb it was possible for runner to be nil at the time we attempted to determine what type of Runner the Runner was. This caused the server to panic as soon as the runner became unavailable. This commit fixes the panic by checking if we received a runner from the database before determining its type. Fixes #3448 --- internal/server/boltdbstate/runner.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/server/boltdbstate/runner.go b/internal/server/boltdbstate/runner.go index 754ef621ed5..89ae6911e88 100644 --- a/internal/server/boltdbstate/runner.go +++ b/internal/server/boltdbstate/runner.go @@ -304,8 +304,7 @@ func (s *State) runnerSetAdoptionState( func (s *State) runnerOffline(dbTxn *bolt.Tx, memTxn *memdb.Txn, id string) error { r, err := s.runnerById(dbTxn, id) if status.Code(err) == codes.NotFound { - r = nil - err = nil + return nil } if err != nil { return err From a34424bef3a3924129b9795bc1c7e6c6c38f7813 Mon Sep 17 00:00:00 2001 From: Britt Gresham Date: Mon, 29 Aug 2022 20:12:02 +0000 Subject: [PATCH 2/2] Add changelog --- .changelog/3756.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .changelog/3756.txt diff --git a/.changelog/3756.txt b/.changelog/3756.txt new file mode 100644 index 00000000000..cdb0e318e7c --- /dev/null +++ b/.changelog/3756.txt @@ -0,0 +1,3 @@ +```release-note:bug +core/runner: Server no longer panics when a runner stopped after it is forgotten. +```