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