make sure services have some time to deregister

Signed-off-by: Jörn Friedrich Dreyer <jfd@butonic.de>
This commit is contained in:
Jörn Friedrich Dreyer
2024-10-28 14:47:11 +01:00
parent 32287da09e
commit 04632ad34c
18 changed files with 117 additions and 3 deletions
+3 -1
View File
@@ -6,6 +6,7 @@ import (
"net"
"net/http"
"net/rpc"
"os"
"sort"
"strings"
"time"
@@ -514,7 +515,8 @@ func trap(s *Service, ctx context.Context) {
}
}
s.Log.Debug().Str("service", "runtime service").Msgf("terminating with signal: %v", s)
//os.Exit(0) // this seems to cause an early exit that prevents services from shitting down properly
time.Sleep(3 * time.Second) // give the services time to deregister
os.Exit(0) // FIXME this cause an early exit that prevents services from shitting down properly
}
// pingNats will attempt to connect to nats, blocking until a connection is established
@@ -41,6 +41,13 @@ func Server(cfg *config.Config) *cli.Command {
defer cancel()
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg := revaconfig.AppProviderConfigFromStruct(cfg)
+2 -2
View File
@@ -41,11 +41,11 @@ func Server(cfg *config.Config) *cli.Command {
defer cancel()
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
cancel()
return nil
}, func(err error) {
}, func(_ error) {
})
gr.Add(func() error {
+7
View File
@@ -49,6 +49,13 @@ func Server(cfg *config.Config) *cli.Command {
defer cancel()
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg := revaconfig.AuthAppConfigFromStruct(cfg)
@@ -54,6 +54,13 @@ func Server(cfg *config.Config) *cli.Command {
}
}
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg := revaconfig.AuthBasicConfigFromStruct(cfg)
@@ -41,6 +41,13 @@ func Server(cfg *config.Config) *cli.Command {
defer cancel()
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg := revaconfig.AuthBearerConfigFromStruct(cfg)
@@ -41,6 +41,13 @@ func Server(cfg *config.Config) *cli.Command {
defer cancel()
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg := revaconfig.AuthMachineConfigFromStruct(cfg)
@@ -46,6 +46,13 @@ func Server(cfg *config.Config) *cli.Command {
rcfg := revaconfig.AuthMachineConfigFromStruct(cfg)
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
runtime.RunWithOptions(rcfg, pidFile,
runtime.WithLogger(&logger.Logger),
+7
View File
@@ -46,6 +46,13 @@ func Server(cfg *config.Config) *cli.Command {
return err
}
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
reg := registry.GetRegistry()
+7
View File
@@ -41,6 +41,13 @@ func Server(cfg *config.Config) *cli.Command {
defer cancel()
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg := revaconfig.GatewayConfigFromStruct(cfg, logger)
+7
View File
@@ -54,6 +54,13 @@ func Server(cfg *config.Config) *cli.Command {
}
}
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg := revaconfig.GroupsConfigFromStruct(cfg)
+7
View File
@@ -43,6 +43,13 @@ func Server(cfg *config.Config) *cli.Command {
rCfg := revaconfig.OCMConfigFromStruct(cfg, logger)
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
reg := registry.GetRegistry()
+7
View File
@@ -54,6 +54,13 @@ func Server(cfg *config.Config) *cli.Command {
}
}
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg, err := revaconfig.SharingConfigFromStruct(cfg, logger)
@@ -41,6 +41,13 @@ func Server(cfg *config.Config) *cli.Command {
defer cancel()
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg := revaconfig.StoragePublicLinkConfigFromStruct(cfg)
@@ -41,6 +41,13 @@ func Server(cfg *config.Config) *cli.Command {
defer cancel()
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg := revaconfig.StorageSharesConfigFromStruct(cfg)
@@ -41,6 +41,13 @@ func Server(cfg *config.Config) *cli.Command {
defer cancel()
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg := revaconfig.StorageSystemFromStruct(cfg)
@@ -43,6 +43,13 @@ func Server(cfg *config.Config) *cli.Command {
defer cancel()
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg := revaconfig.StorageUsersConfigFromStruct(cfg)
+7
View File
@@ -54,6 +54,13 @@ func Server(cfg *config.Config) *cli.Command {
}
}
// make sure the run group executes all interrupt handlers when the context is canceled
gr.Add(func() error {
<-ctx.Done()
return nil
}, func(_ error) {
})
gr.Add(func() error {
pidFile := path.Join(os.TempDir(), "revad-"+cfg.Service.Name+"-"+uuid.Must(uuid.NewV4()).String()+".pid")
rCfg := revaconfig.UsersConfigFromStruct(cfg)