From d0c83eb48dd0236f13a9680319fca3eb651b5a1f Mon Sep 17 00:00:00 2001 From: Travis Ralston <travpc@gmail.com> Date: Fri, 3 Jan 2020 09:30:16 -0700 Subject: [PATCH] Fix contexts being closed before exports can be completed If we use the request context, by the time we get a chance to do anything it will have been cancelled. We should be setting a new context so we can control its cancellation. --- CHANGELOG.md | 4 +++- controllers/data_controller/export_controller.go | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d15adde..41179db6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] -Nothing yet. +### Fixed + +* Fixed exports not starting in 1.0.0-rc.1. ## [1.0.0-rc.1] - December 29, 2019 diff --git a/controllers/data_controller/export_controller.go b/controllers/data_controller/export_controller.go index 15a44e3b..bf656ebe 100644 --- a/controllers/data_controller/export_controller.go +++ b/controllers/data_controller/export_controller.go @@ -4,6 +4,7 @@ import ( "archive/tar" "bytes" "compress/gzip" + "context" "encoding/json" "fmt" "io" @@ -62,6 +63,10 @@ func StartServerExport(serverName string, s3urls bool, includeData bool, ctx rco } go func() { + // Use a new context in the goroutine + ctx.Context = context.Background() + db := storage.GetDatabase().GetMetadataStore(ctx) + ds, err := datastore.PickDatastore(common.KindArchives, ctx) if err != nil { ctx.Log.Error(err) @@ -108,6 +113,10 @@ func StartUserExport(userId string, s3urls bool, includeData bool, ctx rcontext. } go func() { + // Use a new context in the goroutine + ctx.Context = context.Background() + db := storage.GetDatabase().GetMetadataStore(ctx) + ds, err := datastore.PickDatastore(common.KindArchives, ctx, ) if err != nil { ctx.Log.Error(err) -- GitLab