correct usage of suture

This commit is contained in:
A.Unger
2021-03-04 11:51:36 +01:00
parent a2a921454b
commit 58543a1415
4 changed files with 7 additions and 18 deletions

View File

@@ -139,7 +139,7 @@ func NewSutureService(ctx context.Context, cfg *config.Config) SutureService {
func (s SutureService) Serve() {
if err := Execute(s.cfg); err != nil {
panic(err)
return
}
}

View File

@@ -125,7 +125,8 @@ func Server(cfg *config.Config) *cli.Command {
handler, err := svc.New(svc.Logger(logger), svc.Config(cfg))
if err != nil {
logger.Fatal().Err(err).Msg("could not initialize service handler")
logger.Error().Err(err).Msg("handler init")
return err
}
{

View File

@@ -57,24 +57,11 @@ func New(opts ...Option) (s *Service, err error) {
repo: createMetadataStorage(cfg, logger),
}
retries := 20
var current int
r := oreg.GetRegistry()
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++
if _, err := r.GetService("com.owncloud.storage.metadata"); err != nil {
logger.Error().Err(err).Msg("index: storage-metadata service not present")
return nil, err
}
}

View File

@@ -100,6 +100,7 @@ func (r *Runtime) Start() error {
// - config file parsing with Viper is no longer possible as viper is not thread-safe (https://github.com/spf13/viper/issues/19)
// - replace occurrences of log.Fatal in favor of panic() since the supervisor relies on panics.
// - the runtime should ideally run as an rpc service one can do requests, like the good ol' pman, rest in pieces.
// - establish on suture a max number of retries before all initialization comes to a halt.
// propagate reva log config to storage services
r.c.Storage.Log.Level = r.c.Log.Level