mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-21 01:26:28 +00:00
Ignore first SIGINT in node-e2e tests
Node e2e tests exceeding the global timeout are sent SIGINT, resulting in no artifacts or console output. This will ignore the first SIGINT, and since all children processes are being stopped due to SIGINT, we can clean up before exiting.
This commit is contained in:
parent
c9fb3c8a1b
commit
c0c9f1f318
@ -29,6 +29,7 @@ import (
|
||||
"net/http"
|
||||
"os"
|
||||
"os/exec"
|
||||
"os/signal"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"sort"
|
||||
@ -200,6 +201,20 @@ func main() {
|
||||
klog.Fatalf("--test-suite must be one of default, cadvisor, or conformance")
|
||||
}
|
||||
|
||||
// Listen for SIGINT and ignore the first one. In case SIGINT is sent to this
|
||||
// process and all its children, we ignore it here, while our children ssh connections
|
||||
// are stopped. This allows us to gather artifacts and print out test state before
|
||||
// being killed.
|
||||
c := make(chan os.Signal)
|
||||
signal.Notify(c, os.Interrupt)
|
||||
go func() {
|
||||
<-c
|
||||
fmt.Printf("Received SIGINT. Will exit on next SIGINT.\n")
|
||||
<-c
|
||||
fmt.Printf("Received another SIGINT. Will exit.\n")
|
||||
os.Exit(1)
|
||||
}()
|
||||
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
if *buildOnly {
|
||||
// Build the archive and exit
|
||||
|
Loading…
Reference in New Issue
Block a user