diff options
author | zeripath <art27@cantab.net> | 2022-02-19 16:36:25 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-19 16:36:25 +0000 |
commit | 83c9035971e4b594686391a7ff052a7d1fe13771 (patch) | |
tree | 74877a0591159d1800c46b294d178b40f875f455 /modules/graceful | |
parent | 4b3ebda0e78983682003e027a2da46d38f3ef76c (diff) | |
download | gitea-83c9035971e4b594686391a7ff052a7d1fe13771.tar.gz gitea-83c9035971e4b594686391a7ff052a7d1fe13771.zip |
Immediately Hammer if second kill is sent (#18823)
Currently Gitea will wait for HammerTime or nice shutdown if kill -1 or kill -2
is sent. We should just immediately hammer if there is a second kill.
Signed-off-by: Andrew Thornton <art27@cantab.net>
Diffstat (limited to 'modules/graceful')
-rw-r--r-- | modules/graceful/manager.go | 1 | ||||
-rw-r--r-- | modules/graceful/manager_unix.go | 8 |
2 files changed, 7 insertions, 2 deletions
diff --git a/modules/graceful/manager.go b/modules/graceful/manager.go index 031c10d41b..f783573607 100644 --- a/modules/graceful/manager.go +++ b/modules/graceful/manager.go @@ -193,6 +193,7 @@ func (g *Manager) RunAtHammer(hammer func()) { func (g *Manager) doShutdown() { if !g.setStateTransition(stateRunning, stateShuttingDown) { + g.DoImmediateHammer() return } g.lock.Lock() diff --git a/modules/graceful/manager_unix.go b/modules/graceful/manager_unix.go index fcbb16a3bb..99e84d73e8 100644 --- a/modules/graceful/manager_unix.go +++ b/modules/graceful/manager_unix.go @@ -168,8 +168,12 @@ func (g *Manager) DoGracefulRestart() { if setting.GracefulRestartable { log.Info("PID: %d. Forking...", os.Getpid()) err := g.doFork() - if err != nil && err.Error() != "another process already forked. Ignoring this one" { - log.Error("Error whilst forking from PID: %d : %v", os.Getpid(), err) + if err != nil { + if err.Error() == "another process already forked. Ignoring this one" { + g.DoImmediateHammer() + } else { + log.Error("Error whilst forking from PID: %d : %v", os.Getpid(), err) + } } } else { log.Info("PID: %d. Not set restartable. Shutting down...", os.Getpid()) |