summaryrefslogtreecommitdiffhomepage
path: root/runsc
diff options
context:
space:
mode:
authorAndrei Vagin <avagin@google.com>2019-08-13 11:54:59 -0700
committergVisor bot <gvisor-bot@google.com>2019-08-13 11:56:29 -0700
commit8d97b22aa8e565ff05c5e9209f13d2394e9706c8 (patch)
tree560454cee4e8aa2ee3d948d5e381f61765fe68a0 /runsc
parentfa3d0e6f63d6ecc9a6566ec80e4a8c7519c6cf76 (diff)
tests: print stack traces if test failed by timeout
PiperOrigin-RevId: 263184083
Diffstat (limited to 'runsc')
-rw-r--r--runsc/main.go8
-rw-r--r--runsc/sandbox/sandbox.go2
2 files changed, 10 insertions, 0 deletions
diff --git a/runsc/main.go b/runsc/main.go
index 5823819f4..e864118b2 100644
--- a/runsc/main.go
+++ b/runsc/main.go
@@ -22,6 +22,7 @@ import (
"io"
"io/ioutil"
"os"
+ "os/signal"
"path/filepath"
"strings"
"syscall"
@@ -116,6 +117,13 @@ func main() {
// All subcommands must be registered before flag parsing.
flag.Parse()
+ if *testOnlyAllowRunAsCurrentUserWithoutChroot {
+ // SIGTERM is sent to all processes if a test exceeds its
+ // timeout and this case is handled by syscall_test_runner.
+ log.Warningf("Block the TERM signal. This is only safe in tests!")
+ signal.Ignore(syscall.SIGTERM)
+ }
+
// Are we showing the version?
if *showVersion {
// The format here is the same as runc.
diff --git a/runsc/sandbox/sandbox.go b/runsc/sandbox/sandbox.go
index 851b1304b..df3c0c5ef 100644
--- a/runsc/sandbox/sandbox.go
+++ b/runsc/sandbox/sandbox.go
@@ -361,6 +361,8 @@ func (s *Sandbox) createSandboxProcess(conf *boot.Config, args *Args, startSyncF
nextFD++
}
+ cmd.Args = append(cmd.Args, "--panic-signal="+strconv.Itoa(int(syscall.SIGTERM)))
+
// Add the "boot" command to the args.
//
// All flags after this must be for the boot command