Merge pull request #6732 from mheon/fix_stopsignal_set

Set stop signal to 15 when not explicitly set
This commit is contained in:
OpenShift Merge Robot
2020-06-24 13:02:43 -04:00
committed by GitHub
3 changed files with 15 additions and 20 deletions

View File

@ -535,7 +535,6 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string
s.SeccompPolicy = c.SeccompPolicy s.SeccompPolicy = c.SeccompPolicy
// TODO: should parse out options
s.VolumesFrom = c.VolumesFrom s.VolumesFrom = c.VolumesFrom
// Only add read-only tmpfs mounts in case that we are read-only and the // Only add read-only tmpfs mounts in case that we are read-only and the
@ -547,22 +546,10 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string
s.Mounts = mounts s.Mounts = mounts
s.Volumes = volumes s.Volumes = volumes
// TODO any idea why this was done
// devices := rtc.Containers.Devices
// TODO conflict on populate?
//
// if c.Changed("device") {
// devices = append(devices, c.StringSlice("device")...)
// }
for _, dev := range c.Devices { for _, dev := range c.Devices {
s.Devices = append(s.Devices, specs.LinuxDevice{Path: dev}) s.Devices = append(s.Devices, specs.LinuxDevice{Path: dev})
} }
// TODO things i cannot find in spec
// we dont think these are in the spec
// init - initbinary
// initpath
s.Init = c.Init s.Init = c.Init
s.InitPath = c.InitPath s.InitPath = c.InitPath
s.Stdin = c.Interactive s.Stdin = c.Interactive
@ -587,11 +574,6 @@ func FillOutSpecGen(s *specgen.SpecGenerator, c *ContainerCLIOpts, args []string
s.Rlimits = append(s.Rlimits, rl) s.Rlimits = append(s.Rlimits, rl)
} }
// Tmpfs: c.StringArray("tmpfs"),
// TODO how to handle this?
// Syslog: c.Bool("syslog"),
logOpts := make(map[string]string) logOpts := make(map[string]string)
for _, o := range c.LogOptions { for _, o := range c.LogOptions {
split := strings.SplitN(o, "=", 2) split := strings.SplitN(o, "=", 2)

View File

@ -83,6 +83,8 @@ func (r *Runtime) initContainerVariables(rSpec *spec.Spec, config *ContainerConf
return nil, errors.Wrapf(err, "converting containers.conf ShmSize %s to an int", r.config.Containers.ShmSize) return nil, errors.Wrapf(err, "converting containers.conf ShmSize %s to an int", r.config.Containers.ShmSize)
} }
ctr.config.ShmSize = size ctr.config.ShmSize = size
ctr.config.StopSignal = 15
ctr.config.StopTimeout = r.config.Engine.StopTimeout
} else { } else {
// This is a restore from an imported checkpoint // This is a restore from an imported checkpoint
ctr.restoreFromCheckpoint = true ctr.restoreFromCheckpoint = true
@ -107,8 +109,6 @@ func (r *Runtime) initContainerVariables(rSpec *spec.Spec, config *ContainerConf
ctr.state.BindMounts = make(map[string]string) ctr.state.BindMounts = make(map[string]string)
ctr.config.StopTimeout = r.config.Engine.StopTimeout
ctr.config.OCIRuntime = r.defaultOCIRuntime.Name() ctr.config.OCIRuntime = r.defaultOCIRuntime.Name()
// Set namespace based on current runtime namespace // Set namespace based on current runtime namespace

View File

@ -458,4 +458,17 @@ var _ = Describe("Podman create", func() {
Expect(session.ExitCode()).To(Equal(0)) Expect(session.ExitCode()).To(Equal(0))
} }
}) })
It("podman create sets default stop signal 15", func() {
ctrName := "testCtr"
session := podmanTest.Podman([]string{"create", "--name", ctrName, ALPINE, "/bin/sh"})
session.WaitWithDefaultTimeout()
Expect(session.ExitCode()).To(Equal(0))
inspect := podmanTest.Podman([]string{"inspect", ctrName})
inspect.WaitWithDefaultTimeout()
data := inspect.InspectContainerToJSON()
Expect(len(data)).To(Equal(1))
Expect(data[0].Config.StopSignal).To(Equal(uint(15)))
})
}) })