summaryrefslogtreecommitdiffhomepage
path: root/runsc/specutils
diff options
context:
space:
mode:
Diffstat (limited to 'runsc/specutils')
-rw-r--r--runsc/specutils/fs.go4
-rw-r--r--runsc/specutils/namespace.go5
-rw-r--r--runsc/specutils/specutils_test.go24
3 files changed, 21 insertions, 12 deletions
diff --git a/runsc/specutils/fs.go b/runsc/specutils/fs.go
index 9ecd0fde6..ac20696ee 100644
--- a/runsc/specutils/fs.go
+++ b/runsc/specutils/fs.go
@@ -67,8 +67,8 @@ var optionsMap = map[string]mapping{
// verityMountOptions is the set of valid verity mount option keys.
var verityMountOptions = map[string]struct{}{
- "verity.roothash": struct{}{},
- "verity.action": struct{}{},
+ "verity.roothash": {},
+ "verity.action": {},
}
// propOptionsMap is similar to optionsMap, but it lists propagation options
diff --git a/runsc/specutils/namespace.go b/runsc/specutils/namespace.go
index 69d7ba5c4..21559f5e5 100644
--- a/runsc/specutils/namespace.go
+++ b/runsc/specutils/namespace.go
@@ -270,7 +270,10 @@ func MaybeRunAsRoot() error {
go func() {
for {
// Forward all signals to child process.
- cmd.Process.Signal(<-ch)
+ sig := <-ch
+ if err := cmd.Process.Signal(sig); err != nil {
+ log.Warningf("Error forwarding signal %v to child (PID %d)", sig, cmd.Process.Pid)
+ }
}
}()
if err := cmd.Wait(); err != nil {
diff --git a/runsc/specutils/specutils_test.go b/runsc/specutils/specutils_test.go
index 2c86fffe8..e2d3a75dc 100644
--- a/runsc/specutils/specutils_test.go
+++ b/runsc/specutils/specutils_test.go
@@ -29,7 +29,7 @@ func TestWaitForReadyHappy(t *testing.T) {
if err := cmd.Start(); err != nil {
t.Fatalf("cmd.Start() failed, err: %v", err)
}
- defer cmd.Wait()
+ defer func() { _ = cmd.Wait() }()
var count int
err := WaitForReady(cmd.Process.Pid, 5*time.Second, func() (bool, error) {
@@ -42,7 +42,9 @@ func TestWaitForReadyHappy(t *testing.T) {
if err != nil {
t.Errorf("ProcessWaitReady got: %v, expected: nil", err)
}
- cmd.Process.Kill()
+ if err := cmd.Process.Kill(); err != nil {
+ t.Errorf("cmd.ProcessKill(): %v", err)
+ }
}
func TestWaitForReadyFail(t *testing.T) {
@@ -50,7 +52,7 @@ func TestWaitForReadyFail(t *testing.T) {
if err := cmd.Start(); err != nil {
t.Fatalf("cmd.Start() failed, err: %v", err)
}
- defer cmd.Wait()
+ defer func() { _ = cmd.Wait() }()
var count int
err := WaitForReady(cmd.Process.Pid, 5*time.Second, func() (bool, error) {
@@ -58,12 +60,14 @@ func TestWaitForReadyFail(t *testing.T) {
count++
return false, nil
}
- return false, fmt.Errorf("Fake error")
+ return false, fmt.Errorf("fake error")
})
if err == nil {
t.Errorf("ProcessWaitReady got: nil, expected: error")
}
- cmd.Process.Kill()
+ if err := cmd.Process.Kill(); err != nil {
+ t.Errorf("cmd.ProcessKill(): %v", err)
+ }
}
func TestWaitForReadyNotRunning(t *testing.T) {
@@ -71,7 +75,7 @@ func TestWaitForReadyNotRunning(t *testing.T) {
if err := cmd.Start(); err != nil {
t.Fatalf("cmd.Start() failed, err: %v", err)
}
- defer cmd.Wait()
+ defer func() { _ = cmd.Wait() }()
err := WaitForReady(cmd.Process.Pid, 5*time.Second, func() (bool, error) {
return false, nil
@@ -89,15 +93,17 @@ func TestWaitForReadyTimeout(t *testing.T) {
if err := cmd.Start(); err != nil {
t.Fatalf("cmd.Start() failed, err: %v", err)
}
- defer cmd.Wait()
+ defer func() { _ = cmd.Wait() }()
err := WaitForReady(cmd.Process.Pid, 50*time.Millisecond, func() (bool, error) {
return false, nil
})
- if !strings.Contains(err.Error(), "not running yet") {
+ if err == nil || !strings.Contains(err.Error(), "not running yet") {
t.Errorf("ProcessWaitReady got: %v, expected: not running yet", err)
}
- cmd.Process.Kill()
+ if err := cmd.Process.Kill(); err != nil {
+ t.Errorf("cmd.ProcessKill(): %v", err)
+ }
}
func TestSpecInvalid(t *testing.T) {