From 6cb2f563950b6e12d108af146830ba33f20035a0 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Fri, 14 Oct 2022 03:08:40 -0700 Subject: [PATCH] Revert "Revert "tests: Add context cancelation (#15374)"" This reverts commit 564a0afae1c6ddfb6e57152f70e0e0730796164c. --- cmd/admin-handlers_test.go | 2 +- cmd/admin-heal-ops.go | 4 ++-- cmd/auth-handler_test.go | 21 +++++++++---------- cmd/config-current_test.go | 5 ++++- cmd/config-migrate_test.go | 10 ++++++++-- cmd/dynamic-timeouts_test.go | 1 - cmd/fs-v1.go | 3 +-- cmd/fs-v1_test.go | 7 +++++-- cmd/gateway-main.go | 2 +- cmd/gateway-startup-msg_test.go | 11 ++++++++-- cmd/gateway/nas/gateway-nas.go | 2 +- cmd/handler-utils_test.go | 5 ++++- cmd/jwt_test.go | 31 +++++++++++++++++++++++------ cmd/lock-rest-server-common_test.go | 10 +++++++--- cmd/object-api-listobjects_test.go | 2 +- cmd/server-main.go | 12 +++++------ cmd/server-startup-msg_test.go | 16 ++++++++++++--- cmd/signature-v2_test.go | 16 ++++++++++++--- cmd/signature-v4-utils_test.go | 5 ++--- cmd/signature-v4_test.go | 6 +++++- cmd/test-utils_test.go | 29 +++++++++++++-------------- 21 files changed, 133 insertions(+), 67 deletions(-) diff --git a/cmd/admin-handlers_test.go b/cmd/admin-handlers_test.go index 110f5bccd..93018c47b 100644 --- a/cmd/admin-handlers_test.go +++ b/cmd/admin-handlers_test.go @@ -73,7 +73,7 @@ func prepareAdminErasureTestBed(ctx context.Context) (*adminErasureTestBed, erro globalEndpoints = mustGetPoolEndpoints(erasureDirs...) - initAllSubsystems() + initAllSubsystems(ctx) initConfigSubsystem(ctx, objLayer) diff --git a/cmd/admin-heal-ops.go b/cmd/admin-heal-ops.go index 3207d6785..32888a852 100644 --- a/cmd/admin-heal-ops.go +++ b/cmd/admin-heal-ops.go @@ -100,14 +100,14 @@ type allHealState struct { } // newHealState - initialize global heal state management -func newHealState(cleanup bool) *allHealState { +func newHealState(ctx context.Context, cleanup bool) *allHealState { hstate := &allHealState{ healSeqMap: make(map[string]*healSequence), healLocalDisks: make(map[Endpoint]bool), healStatus: make(map[string]healingTracker), } if cleanup { - go hstate.periodicHealSeqsClean(GlobalContext) + go hstate.periodicHealSeqsClean(ctx) } return hstate } diff --git a/cmd/auth-handler_test.go b/cmd/auth-handler_test.go index 8bfd7f956..cbb8e0c27 100644 --- a/cmd/auth-handler_test.go +++ b/cmd/auth-handler_test.go @@ -359,7 +359,10 @@ func mustNewSignedBadMD5Request(method string, urlStr string, contentLength int6 // Tests is requested authenticated function, tests replies for s3 errors. func TestIsReqAuthenticated(t *testing.T) { - objLayer, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(GlobalContext) + defer cancel() + + objLayer, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -368,10 +371,7 @@ func TestIsReqAuthenticated(t *testing.T) { t.Fatalf("unable initialize config file, %s", err) } - initAllSubsystems() - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() + initAllSubsystems(ctx) initConfigSubsystem(ctx, objLayer) @@ -413,7 +413,10 @@ func TestIsReqAuthenticated(t *testing.T) { } func TestCheckAdminRequestAuthType(t *testing.T) { - objLayer, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + objLayer, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -439,7 +442,6 @@ func TestCheckAdminRequestAuthType(t *testing.T) { {Request: mustNewPresignedV2Request(http.MethodGet, "http://127.0.0.1:9000", 0, nil, t), ErrCode: ErrAccessDenied}, {Request: mustNewPresignedRequest(http.MethodGet, "http://127.0.0.1:9000", 0, nil, t), ErrCode: ErrAccessDenied}, } - ctx := context.Background() for i, testCase := range testCases { if _, s3Error := checkAdminRequestAuth(ctx, testCase.Request, iampolicy.AllAdminActions, globalSite.Region); s3Error != testCase.ErrCode { t.Errorf("Test %d: Unexpected s3error returned wanted %d, got %d", i, testCase.ErrCode, s3Error) @@ -451,7 +453,7 @@ func TestValidateAdminSignature(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - objLayer, fsDir, err := prepareFS() + objLayer, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -461,8 +463,7 @@ func TestValidateAdminSignature(t *testing.T) { t.Fatalf("unable initialize config file, %s", err) } - initAllSubsystems() - + initAllSubsystems(ctx) initConfigSubsystem(ctx, objLayer) globalIAMSys.Init(ctx, objLayer, globalEtcdClient, 2*time.Second) diff --git a/cmd/config-current_test.go b/cmd/config-current_test.go index 6c2fa2526..7299312c3 100644 --- a/cmd/config-current_test.go +++ b/cmd/config-current_test.go @@ -26,7 +26,10 @@ import ( ) func TestServerConfig(t *testing.T) { - objLayer, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + objLayer, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } diff --git a/cmd/config-migrate_test.go b/cmd/config-migrate_test.go index af3d15cbc..da1143e24 100644 --- a/cmd/config-migrate_test.go +++ b/cmd/config-migrate_test.go @@ -18,6 +18,7 @@ package cmd import ( + "context" "fmt" "os" "testing" @@ -27,7 +28,10 @@ import ( // Test if config v1 is purged func TestServerConfigMigrateV1(t *testing.T) { - objLayer, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + objLayer, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -154,10 +158,12 @@ func TestServerConfigMigrateInexistentConfig(t *testing.T) { // Test if a config migration from v2 to v33 is successfully done func TestServerConfigMigrateV2toV33(t *testing.T) { rootPath := t.TempDir() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() globalConfigDir = &ConfigDir{path: rootPath} - objLayer, fsDir, err := prepareFS() + objLayer, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } diff --git a/cmd/dynamic-timeouts_test.go b/cmd/dynamic-timeouts_test.go index 1cb5e16ae..42f66c998 100644 --- a/cmd/dynamic-timeouts_test.go +++ b/cmd/dynamic-timeouts_test.go @@ -130,7 +130,6 @@ func TestDynamicTimeoutConcurrent(t *testing.T) { go func() { defer wg.Done() for i := 0; i < 100; i++ { - timeout.LogFailure() for j := 0; j < 100; j++ { timeout.LogSuccess(time.Duration(float64(time.Second) * rng.Float64())) } diff --git a/cmd/fs-v1.go b/cmd/fs-v1.go index 2b7e7e2a5..33bee6fbe 100644 --- a/cmd/fs-v1.go +++ b/cmd/fs-v1.go @@ -116,8 +116,7 @@ func initMetaVolumeFS(fsPath, fsUUID string) error { } // NewFSObjectLayer - initialize new fs object layer. -func NewFSObjectLayer(fsPath string) (ObjectLayer, error) { - ctx := GlobalContext +func NewFSObjectLayer(ctx context.Context, fsPath string) (ObjectLayer, error) { if fsPath == "" { return nil, errInvalidArgument } diff --git a/cmd/fs-v1_test.go b/cmd/fs-v1_test.go index a6c95d3f6..3420cfaea 100644 --- a/cmd/fs-v1_test.go +++ b/cmd/fs-v1_test.go @@ -19,6 +19,7 @@ package cmd import ( "bytes" + "context" "os" "path/filepath" "testing" @@ -29,17 +30,19 @@ import ( // TestNewFS - tests initialization of all input disks // and constructs a valid `FS` object layer. func TestNewFS(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() // Do not attempt to create this path, the test validates // so that NewFSObjectLayer initializes non existing paths // and successfully returns initialized object layer. disk := filepath.Join(globalTestTmpDir, "minio-"+nextSuffix()) defer os.RemoveAll(disk) - _, err := NewFSObjectLayer("") + _, err := NewFSObjectLayer(ctx, "") if err != errInvalidArgument { t.Errorf("Expecting error invalid argument, got %s", err) } - _, err = NewFSObjectLayer(disk) + _, err = NewFSObjectLayer(ctx, disk) if err != nil { errMsg := "Unable to recognize backend format, Drive is not in FS format." if err.Error() == errMsg { diff --git a/cmd/gateway-main.go b/cmd/gateway-main.go index 0bbdb18a5..7abc0c6db 100644 --- a/cmd/gateway-main.go +++ b/cmd/gateway-main.go @@ -284,7 +284,7 @@ func StartGateway(ctx *cli.Context, gw Gateway) { newObject = NewGatewayLayerWithLocker(newObject) // Calls all New() for all sub-systems. - initAllSubsystems() + initAllSubsystems(GlobalContext) // Once endpoints are finalized, initialize the new object api in safe mode. globalObjLayerMutex.Lock() diff --git a/cmd/gateway-startup-msg_test.go b/cmd/gateway-startup-msg_test.go index a4c827937..7e0bde1eb 100644 --- a/cmd/gateway-startup-msg_test.go +++ b/cmd/gateway-startup-msg_test.go @@ -18,13 +18,17 @@ package cmd import ( + "context" "os" "testing" ) // Test printing Gateway common message. func TestPrintGatewayCommonMessage(t *testing.T) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -39,7 +43,10 @@ func TestPrintGatewayCommonMessage(t *testing.T) { // Test print gateway startup message. func TestPrintGatewayStartupMessage(t *testing.T) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } diff --git a/cmd/gateway/nas/gateway-nas.go b/cmd/gateway/nas/gateway-nas.go index 16c45db9a..f41e09c2e 100644 --- a/cmd/gateway/nas/gateway-nas.go +++ b/cmd/gateway/nas/gateway-nas.go @@ -87,7 +87,7 @@ func (g *NAS) Name() string { // NewGatewayLayer returns nas gatewaylayer. func (g *NAS) NewGatewayLayer(creds madmin.Credentials) (minio.ObjectLayer, error) { var err error - newObject, err := minio.NewFSObjectLayer(g.path) + newObject, err := minio.NewFSObjectLayer(minio.GlobalContext, g.path) if err != nil { return nil, err } diff --git a/cmd/handler-utils_test.go b/cmd/handler-utils_test.go index 50cefc58e..9d0c4a28a 100644 --- a/cmd/handler-utils_test.go +++ b/cmd/handler-utils_test.go @@ -34,7 +34,10 @@ import ( // Tests validate bucket LocationConstraint. func TestIsValidLocationContraint(t *testing.T) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } diff --git a/cmd/jwt_test.go b/cmd/jwt_test.go index 0774839f5..a40e7d7de 100644 --- a/cmd/jwt_test.go +++ b/cmd/jwt_test.go @@ -18,6 +18,7 @@ package cmd import ( + "context" "net/http" "os" "testing" @@ -29,7 +30,10 @@ import ( ) func testAuthenticate(authType string, t *testing.T) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -103,7 +107,10 @@ func getTokenString(accessKey, secretKey string) (string, error) { // Tests web request authenticator. func TestWebRequestAuthenticate(t *testing.T) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -157,7 +164,10 @@ func TestWebRequestAuthenticate(t *testing.T) { } func BenchmarkParseJWTStandardClaims(b *testing.B) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { b.Fatal(err) } @@ -185,7 +195,10 @@ func BenchmarkParseJWTStandardClaims(b *testing.B) { } func BenchmarkParseJWTMapClaims(b *testing.B) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { b.Fatal(err) } @@ -215,7 +228,10 @@ func BenchmarkParseJWTMapClaims(b *testing.B) { } func BenchmarkAuthenticateNode(b *testing.B) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { b.Fatal(err) } @@ -244,7 +260,10 @@ func BenchmarkAuthenticateNode(b *testing.B) { } func BenchmarkAuthenticateWeb(b *testing.B) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { b.Fatal(err) } diff --git a/cmd/lock-rest-server-common_test.go b/cmd/lock-rest-server-common_test.go index 8d339da0c..1ef884532 100644 --- a/cmd/lock-rest-server-common_test.go +++ b/cmd/lock-rest-server-common_test.go @@ -18,6 +18,7 @@ package cmd import ( + "context" "os" "reflect" "sync" @@ -27,8 +28,8 @@ import ( ) // Helper function to create a lock server for testing -func createLockTestServer(t *testing.T) (string, *lockRESTServer, string) { - obj, fsDir, err := prepareFS() +func createLockTestServer(ctx context.Context, t *testing.T) (string, *lockRESTServer, string) { + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -52,7 +53,10 @@ func createLockTestServer(t *testing.T) (string, *lockRESTServer, string) { // Test function to remove lock entries from map based on name & uid combination func TestLockRpcServerRemoveEntry(t *testing.T) { - testPath, locker, _ := createLockTestServer(t) + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + testPath, locker, _ := createLockTestServer(ctx, t) defer os.RemoveAll(testPath) lockRequesterInfo1 := lockRequesterInfo{ diff --git a/cmd/object-api-listobjects_test.go b/cmd/object-api-listobjects_test.go index 4247191dc..f48b7c634 100644 --- a/cmd/object-api-listobjects_test.go +++ b/cmd/object-api-listobjects_test.go @@ -1877,7 +1877,7 @@ func initFSObjectsB(disk string, t *testing.B) (obj ObjectLayer) { newTestConfig(globalMinioDefaultRegion, obj) - initAllSubsystems() + initAllSubsystems(GlobalContext) return obj } diff --git a/cmd/server-main.go b/cmd/server-main.go index 00fe35537..d6122d006 100644 --- a/cmd/server-main.go +++ b/cmd/server-main.go @@ -241,11 +241,11 @@ func serverHandleEnvVars() { var globalHealStateLK sync.RWMutex -func initAllSubsystems() { +func initAllSubsystems(ctx context.Context) { globalHealStateLK.Lock() // New global heal state - globalAllHealState = newHealState(true) - globalBackgroundHealState = newHealState(false) + globalAllHealState = newHealState(ctx, true) + globalBackgroundHealState = newHealState(ctx, false) globalHealStateLK.Unlock() // Initialize notification peer targets @@ -263,7 +263,7 @@ func initAllSubsystems() { } // Create the bucket bandwidth monitor - globalBucketMonitor = bandwidth.NewMonitor(GlobalContext, totalNodeCount()) + globalBucketMonitor = bandwidth.NewMonitor(ctx, totalNodeCount()) // Create a new config system. globalConfigSys = NewConfigSys() @@ -450,7 +450,7 @@ func serverMain(ctx *cli.Context) { initHelp() // Initialize all sub-systems - initAllSubsystems() + initAllSubsystems(GlobalContext) // Is distributed setup, error out if no certificates are found for HTTPS endpoints. if globalIsDistErasure { @@ -696,7 +696,7 @@ func newObjectLayer(ctx context.Context, endpointServerPools EndpointServerPools // For FS only, directly use the disk. if endpointServerPools.NEndpoints() == 1 { // Initialize new FS object layer. - newObject, err = NewFSObjectLayer(endpointServerPools[0].Endpoints[0].Path) + newObject, err = NewFSObjectLayer(ctx, endpointServerPools[0].Endpoints[0].Path) if err == nil { return newObject, nil } diff --git a/cmd/server-startup-msg_test.go b/cmd/server-startup-msg_test.go index 3024addaf..b305b64ac 100644 --- a/cmd/server-startup-msg_test.go +++ b/cmd/server-startup-msg_test.go @@ -18,6 +18,7 @@ package cmd import ( + "context" "os" "reflect" "strings" @@ -71,7 +72,10 @@ func TestStripStandardPorts(t *testing.T) { // Test printing server common message. func TestPrintServerCommonMessage(t *testing.T) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -86,7 +90,10 @@ func TestPrintServerCommonMessage(t *testing.T) { // Tests print cli access message. func TestPrintCLIAccessMsg(t *testing.T) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -101,7 +108,10 @@ func TestPrintCLIAccessMsg(t *testing.T) { // Test print startup message. func TestPrintStartupMessage(t *testing.T) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } diff --git a/cmd/signature-v2_test.go b/cmd/signature-v2_test.go index 4a00ad2c0..5125a952c 100644 --- a/cmd/signature-v2_test.go +++ b/cmd/signature-v2_test.go @@ -18,6 +18,7 @@ package cmd import ( + "context" "fmt" "net/http" "net/url" @@ -41,7 +42,10 @@ func TestResourceListSorting(t *testing.T) { // Tests presigned v2 signature. func TestDoesPresignedV2SignatureMatch(t *testing.T) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -161,7 +165,10 @@ func TestDoesPresignedV2SignatureMatch(t *testing.T) { // TestValidateV2AuthHeader - Tests validate the logic of V2 Authorization header validator. func TestValidateV2AuthHeader(t *testing.T) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -232,7 +239,10 @@ func TestValidateV2AuthHeader(t *testing.T) { } func TestDoesPolicySignatureV2Match(t *testing.T) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } diff --git a/cmd/signature-v4-utils_test.go b/cmd/signature-v4-utils_test.go index 97a156eee..fe876b91a 100644 --- a/cmd/signature-v4-utils_test.go +++ b/cmd/signature-v4-utils_test.go @@ -33,7 +33,7 @@ func TestCheckValid(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - objLayer, fsDir, err := prepareFS() + objLayer, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } @@ -42,8 +42,7 @@ func TestCheckValid(t *testing.T) { t.Fatalf("unable initialize config file, %s", err) } - initAllSubsystems() - + initAllSubsystems(ctx) initConfigSubsystem(ctx, objLayer) globalIAMSys.Init(ctx, objLayer, globalEtcdClient, 2*time.Second) diff --git a/cmd/signature-v4_test.go b/cmd/signature-v4_test.go index 26e3aa67d..3a96179a5 100644 --- a/cmd/signature-v4_test.go +++ b/cmd/signature-v4_test.go @@ -18,6 +18,7 @@ package cmd import ( + "context" "fmt" "net/http" "net/url" @@ -93,7 +94,10 @@ func TestDoesPolicySignatureMatch(t *testing.T) { } func TestDoesPresignedSignatureMatch(t *testing.T) { - obj, fsDir, err := prepareFS() + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + obj, fsDir, err := prepareFS(ctx) if err != nil { t.Fatal(err) } diff --git a/cmd/test-utils_test.go b/cmd/test-utils_test.go index 2dbc32638..3db2290fa 100644 --- a/cmd/test-utils_test.go +++ b/cmd/test-utils_test.go @@ -184,7 +184,7 @@ func calculateStreamContentLength(dataLen, chunkSize int64) int64 { return streamLen } -func prepareFS() (ObjectLayer, string, error) { +func prepareFS(ctx context.Context) (ObjectLayer, string, error) { nDisks := 1 fsDirs, err := getRandomDisks(nDisks) if err != nil { @@ -195,9 +195,9 @@ func prepareFS() (ObjectLayer, string, error) { return nil, "", err } - initAllSubsystems() + initAllSubsystems(ctx) - globalIAMSys.Init(context.Background(), obj, globalEtcdClient, 2*time.Second) + globalIAMSys.Init(ctx, obj, globalEtcdClient, 2*time.Second) return obj, fsDirs[0], nil } @@ -232,7 +232,7 @@ func initFSObjects(disk string, t *testing.T) (obj ObjectLayer) { newTestConfig(globalMinioDefaultRegion, obj) - initAllSubsystems() + initAllSubsystems(GlobalContext) return obj } @@ -365,7 +365,7 @@ func initTestServerWithBackend(ctx context.Context, t TestErrHandler, testServer globalMinioPort = port globalMinioAddr = getEndpointsLocalAddr(testServer.Disks) - initAllSubsystems() + initAllSubsystems(ctx) globalEtcdClient = nil @@ -446,7 +446,7 @@ func resetGlobalIsErasure() { func resetGlobalHealState() { // Init global heal state if globalAllHealState == nil { - globalAllHealState = newHealState(false) + globalAllHealState = newHealState(GlobalContext, false) } else { globalAllHealState.Lock() for _, v := range globalAllHealState.healSeqMap { @@ -459,7 +459,7 @@ func resetGlobalHealState() { // Init background heal state if globalBackgroundHealState == nil { - globalBackgroundHealState = newHealState(false) + globalBackgroundHealState = newHealState(GlobalContext, false) } else { globalBackgroundHealState.Lock() for _, v := range globalBackgroundHealState.healSeqMap { @@ -1492,7 +1492,7 @@ func getRandomDisks(N int) ([]string, error) { // Initialize object layer with the supplied disks, objectLayer is nil upon any error. func newTestObjectLayer(ctx context.Context, endpointServerPools EndpointServerPools) (newObject ObjectLayer, err error) { - initAllSubsystems() + initAllSubsystems(ctx) return newErasureServerPools(ctx, endpointServerPools) } @@ -1536,7 +1536,7 @@ func removeDiskN(disks []string, n int) { // initialies the root and returns its path. // return credentials. func initAPIHandlerTest(ctx context.Context, obj ObjectLayer, endpoints []string) (string, http.Handler, error) { - initAllSubsystems() + initAllSubsystems(ctx) initConfigSubsystem(ctx, obj) @@ -1574,7 +1574,7 @@ func prepareTestBackend(ctx context.Context, instanceType string) (ObjectLayer, return prepareErasure16(ctx) default: // return FS backend by default. - obj, disk, err := prepareFS() + obj, disk, err := prepareFS(ctx) if err != nil { return nil, nil, err } @@ -1746,7 +1746,7 @@ func ExecObjectLayerAPITest(t *testing.T, objAPITest objAPITestType, endpoints [ // this is to make sure that the tests are not affected by modified value. resetTestGlobals() - objLayer, fsDir, err := prepareFS() + objLayer, fsDir, err := prepareFS(ctx) if err != nil { t.Fatalf("Initialization of object layer failed for single node setup: %s", err) } @@ -1825,13 +1825,12 @@ func ExecObjectLayerTest(t TestErrHandler, objTest objTestType) { localMetacacheMgr.deleteAll() } - objLayer, fsDir, err := prepareFS() + objLayer, fsDir, err := prepareFS(ctx) if err != nil { t.Fatalf("Initialization of object layer failed for single node setup: %s", err) } setObjectLayer(objLayer) - - initAllSubsystems() + initAllSubsystems(ctx) // initialize the server and obtain the credentials and root. // credentials are necessary to sign the HTTP request. @@ -1857,7 +1856,7 @@ func ExecObjectLayerTest(t TestErrHandler, objTest objTestType) { localMetacacheMgr.deleteAll() } - initAllSubsystems() + initAllSubsystems(ctx) objLayer, fsDirs, err := prepareErasureSets32(ctx) if err != nil { t.Fatalf("Initialization of object layer failed for Erasure setup: %s", err)