diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-10-12 21:08:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-12 21:08:10 +0200 |
commit | 03095bd090e067ef1a2978a2107ec07ff3f95a2c (patch) | |
tree | a358550e152355529412e3247aeaefc2887db306 /libpod | |
parent | 65e156467b5cc40e14a578a6d916e4df902d0a99 (diff) | |
parent | 0459484bdf51b3aabc51f2ae82136b6b0f3d88ba (diff) | |
download | podman-03095bd090e067ef1a2978a2107ec07ff3f95a2c.tar.gz podman-03095bd090e067ef1a2978a2107ec07ff3f95a2c.tar.bz2 podman-03095bd090e067ef1a2978a2107ec07ff3f95a2c.zip |
Merge pull request #11927 from jwhonce/issues/11921
Fix CI flake on time of shutdown for API service
Diffstat (limited to 'libpod')
-rw-r--r-- | libpod/shutdown/handler.go | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/libpod/shutdown/handler.go b/libpod/shutdown/handler.go index b0feafa0b..9add05c9c 100644 --- a/libpod/shutdown/handler.go +++ b/libpod/shutdown/handler.go @@ -5,9 +5,10 @@ import ( "os/signal" "sync" "syscall" + "time" "github.com/pkg/errors" - "github.com/sirupsen/logrus" + logrusImport "github.com/sirupsen/logrus" ) var ( @@ -25,6 +26,7 @@ var ( // Ordering that on-shutdown handlers will be invoked. handlerOrder []string shutdownInhibit sync.RWMutex + logrus = logrusImport.WithField("PID", os.Getpid()) ) // Start begins handling SIGTERM and SIGINT and will run the given on-signal @@ -44,25 +46,31 @@ func Start() error { go func() { select { case <-cancelChan: + logrus.Infof("Received shutdown.Stop(), terminating!") signal.Stop(sigChan) close(sigChan) close(cancelChan) stopped = true return case sig := <-sigChan: - logrus.Infof("Received shutdown signal %v, terminating!", sig) + logrus.Infof("Received shutdown signal %q, terminating!", sig.String()) shutdownInhibit.Lock() handlerLock.Lock() + for _, name := range handlerOrder { handler, ok := handlers[name] if !ok { - logrus.Errorf("Shutdown handler %s definition not found!", name) + logrus.Errorf("Shutdown handler %q definition not found!", name) continue } - logrus.Infof("Invoking shutdown handler %s", name) + + logrus.Infof("Invoking shutdown handler %q", name) + start := time.Now() if err := handler(sig); err != nil { - logrus.Errorf("Running shutdown handler %s: %v", name, err) + logrus.Errorf("Running shutdown handler %q: %v", name, err) } + logrus.Debugf("Completed shutdown handler %q, duration %v", name, + time.Since(start).Round(time.Second)) } handlerLock.Unlock() shutdownInhibit.Unlock() |