cloudapi: prevent dangling manifest goroutines

When composer exits, it doesn't wait for the manifest generation goroutines
to finish. This is generally a bad practice so let's introduce a bit of
syncing and a new Shutdown method to prevent this.

This also prevents the manifest generation goroutine from creating weird
states when interrupted on a random line of code.

Signed-off-by: Ondřej Budai <ondrej@budai.cz>
This commit is contained in:
Ondřej Budai 2022-04-05 14:25:47 +02:00 committed by Tomáš Hozza
parent 02091ba777
commit ba236180fc
4 changed files with 34 additions and 3 deletions

View file

@ -39,6 +39,7 @@ func newV2Server(t *testing.T, dir string, depsolveChannels []string, enableJWT
}
v2Server := v2.NewServer(workerServer, distros, config)
require.NotNil(t, v2Server)
t.Cleanup(v2Server.Shutdown)
// start a routine which just completes depsolve jobs
depsolveContext, cancel := context.WithCancel(context.Background())