summaryrefslogtreecommitdiffstats
path: root/modules/graceful
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2022-02-19 16:36:25 +0000
committerGitHub <noreply@github.com>2022-02-19 16:36:25 +0000
commit83c9035971e4b594686391a7ff052a7d1fe13771 (patch)
tree74877a0591159d1800c46b294d178b40f875f455 /modules/graceful
parent4b3ebda0e78983682003e027a2da46d38f3ef76c (diff)
downloadgitea-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.go1
-rw-r--r--modules/graceful/manager_unix.go8
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())