From a361c12e2abeef25edfe2a150e20b6be076b43c2 Mon Sep 17 00:00:00 2001 From: "A.Unger" Date: Tue, 23 Feb 2021 12:45:21 +0100 Subject: [PATCH] defensive code around accounts init --- accounts/pkg/service/v0/service.go | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/accounts/pkg/service/v0/service.go b/accounts/pkg/service/v0/service.go index abce0efa8c..e43f463eb5 100644 --- a/accounts/pkg/service/v0/service.go +++ b/accounts/pkg/service/v0/service.go @@ -60,22 +60,22 @@ func New(opts ...Option) (s *Service, err error) { retries := 20 var current int r := oreg.GetRegistry() - // TODO(refs) we only need to block here IF the accounts index is configured to use the CS3 index. This is because - // the cs3 implementation relies on a storage-metadata backend that runs as a reva service. - for { - if current >= retries { - panic("metadata service failed to start.") + if cfg.Repo.Disk.Path == "" { + for { + if current >= retries { + panic("metadata service failed to start.") + } + s, err := r.GetService("com.owncloud.storage.metadata") + if err != nil { + logger.Error().Err(err).Msg("error getting metadata service from service registry") + } + if len(s) > 0 { + break + } + logger.Info().Msg("accounts blocked waiting for metadata service to be up and running...") + time.Sleep(2 * time.Second) + current++ } - s, err := r.GetService("com.owncloud.storage.metadata") - if err != nil { - logger.Error().Err(err).Msg("error getting metadata service from service registry") - } - if len(s) > 0 { - break - } - logger.Info().Msg("accounts blocked waiting for metadata service to be up and running...") - time.Sleep(2 * time.Second) - current++ } // we want to wait anyway. If it depends on a reva service it could be the case that the entry on the registry