From 6689668d894b674f4b5379d905d673405be68508 Mon Sep 17 00:00:00 2001 From: mcrakhman Date: Mon, 18 Dec 2023 17:31:38 +0100 Subject: [PATCH] GO-2548 Fix space creation --- space/create.go | 15 +++++++++++++-- space/load.go | 8 ++------ space/spacefactory/spacefactory.go | 6 +----- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/space/create.go b/space/create.go index 452dc14b0..c3d05b359 100644 --- a/space/create.go +++ b/space/create.go @@ -34,7 +34,7 @@ func (s *service) createPersonalSpace(ctx context.Context) (err error) { return } -func (s *service) create(ctx context.Context) (clientspace.Space, error) { +func (s *service) create(ctx context.Context) (sp clientspace.Space, err error) { coreSpace, err := s.spaceCore.Create(ctx, s.repKey, s.metadataPayload) if err != nil { return nil, err @@ -46,6 +46,17 @@ func (s *service) create(ctx context.Context) (clientspace.Space, error) { } s.mu.Unlock() ctrl, err := s.factory.CreateShareableSpace(ctx, coreSpace.Id()) + if err != nil { + s.mu.Lock() + close(wait) + s.waiting[coreSpace.Id()] = controllerWaiter{ + wait: wait, + err: err, + } + s.mu.Unlock() + return nil, err + } + sp, err = ctrl.Current().(loader.LoadWaiter).WaitLoad(ctx) s.mu.Lock() close(wait) if err != nil { @@ -58,5 +69,5 @@ func (s *service) create(ctx context.Context) (clientspace.Space, error) { } s.spaceControllers[ctrl.SpaceId()] = ctrl s.mu.Unlock() - return ctrl.Current().(loader.LoadWaiter).WaitLoad(ctx) + return } diff --git a/space/load.go b/space/load.go index 4199fbd8e..805024ff6 100644 --- a/space/load.go +++ b/space/load.go @@ -80,14 +80,10 @@ func (s *service) loadPersonalSpace(ctx context.Context) (err error) { _, err = ctrl.Current().(loader.LoadWaiter).WaitLoad(ctx) s.mu.Lock() defer s.mu.Unlock() - close(wait) if err != nil { - s.waiting[s.personalSpaceId] = controllerWaiter{ - wait: wait, - err: err, - } - return + return err } + close(wait) s.spaceControllers[s.personalSpaceId] = ctrl return } diff --git a/space/spacefactory/spacefactory.go b/space/spacefactory/spacefactory.go index ba972ba9b..b3bcc8154 100644 --- a/space/spacefactory/spacefactory.go +++ b/space/spacefactory/spacefactory.go @@ -126,14 +126,10 @@ func (s *spaceFactory) NewShareableSpace(ctx context.Context, id string, status } func (s *spaceFactory) CreateShareableSpace(ctx context.Context, id string) (sp spacecontroller.SpaceController, err error) { - //coreSpace, err := s.spaceCore.Create(ctx, s.repKey, s.metadataPayload) - //if err != nil { - // return - //} if err := s.techSpace.SpaceViewCreate(ctx, id, true); err != nil { return nil, err } - ctrl, err := shareablespace.NewSpaceController(id, false, spaceinfo.AccountStatusUnknown, s.app) + ctrl, err := shareablespace.NewSpaceController(id, true, spaceinfo.AccountStatusUnknown, s.app) if err != nil { return nil, err }