Skip to content
Snippets Groups Projects
Commit b2e04c53 authored by Ming Deng's avatar Ming Deng
Browse files

Define DumpHeapSingals on different platforms

parent a3d38502
No related branches found
No related tags found
No related merge requests found
...@@ -21,7 +21,6 @@ import ( ...@@ -21,7 +21,6 @@ import (
"os" "os"
"os/signal" "os/signal"
"runtime/debug" "runtime/debug"
"syscall"
"time" "time"
) )
...@@ -66,18 +65,18 @@ func GracefulShutdownInit() { ...@@ -66,18 +65,18 @@ func GracefulShutdownInit() {
// gracefulShutdownOnce.Do(func() { // gracefulShutdownOnce.Do(func() {
BeforeShutdown() BeforeShutdown()
switch sig {
// those signals' original behavior is exit with dump ths stack, so we try to keep the behavior // those signals' original behavior is exit with dump ths stack, so we try to keep the behavior
// syscall.SIGSYS will be ignored. It's not supported in windows platform. for _, dumpSignal := range DumpHeapShutdownSignals {
case syscall.SIGQUIT, syscall.SIGILL, syscall.SIGTRAP, if sig == dumpSignal {
syscall.SIGABRT: debug.WriteHeapDump(os.Stdout.Fd())
debug.WriteHeapDump(os.Stdout.Fd()) }
default:
time.AfterFunc(totalTimeout(), func() {
logger.Warn("Shutdown gracefully timeout, application will shutdown immediately. ")
os.Exit(0)
})
} }
time.AfterFunc(totalTimeout(), func() {
logger.Warn("Shutdown gracefully timeout, application will shutdown immediately. ")
os.Exit(0)
})
os.Exit(0) os.Exit(0)
} }
}() }()
......
...@@ -25,3 +25,6 @@ import ( ...@@ -25,3 +25,6 @@ import (
var ShutdownSignals = []os.Signal{os.Interrupt, os.Kill, syscall.SIGKILL, syscall.SIGSTOP, var ShutdownSignals = []os.Signal{os.Interrupt, os.Kill, syscall.SIGKILL, syscall.SIGSTOP,
syscall.SIGHUP, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGILL, syscall.SIGTRAP, syscall.SIGHUP, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGILL, syscall.SIGTRAP,
syscall.SIGABRT, syscall.SIGSYS} syscall.SIGABRT, syscall.SIGSYS}
var DumpHeapShutdownSignals = []os.Signal{syscall.SIGQUIT, syscall.SIGILL,
syscall.SIGTRAP, syscall.SIGABRT, syscall.SIGSYS}
...@@ -25,3 +25,5 @@ import ( ...@@ -25,3 +25,5 @@ import (
var ShutdownSignals = []os.Signal{os.Interrupt, os.Kill, syscall.SIGKILL, var ShutdownSignals = []os.Signal{os.Interrupt, os.Kill, syscall.SIGKILL,
syscall.SIGHUP, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGILL, syscall.SIGTRAP, syscall.SIGHUP, syscall.SIGINT, syscall.SIGQUIT, syscall.SIGILL, syscall.SIGTRAP,
syscall.SIGABRT} syscall.SIGABRT}
var DumpHeapShutdownSignals = []os.Signal{syscall.SIGQUIT, syscall.SIGILL, syscall.SIGTRAP, syscall.SIGABRT}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment