Merge pull request #3540 from bradenrayhorn/fix-negative-memory-limit

runtime: fix handling container spec's memory limit
This commit is contained in:
Archana Shinde 2022-01-25 05:17:05 -08:00 committed by GitHub
commit 081a235efe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 1 deletions

View File

@ -1989,7 +1989,7 @@ func (s *Sandbox) calculateSandboxMemory() (int64, bool, int64) {
if m := c.Resources.Memory; m != nil {
currentLimit := int64(0)
if m.Limit != nil {
if m.Limit != nil && *m.Limit > 0 {
currentLimit = *m.Limit
memorySandbox += currentLimit
}

View File

@ -178,6 +178,20 @@ func TestCalculateSandboxMem(t *testing.T) {
}
}
func TestCalculateSandboxMemHandlesNegativeLimits(t *testing.T) {
sandbox := &Sandbox{}
sandbox.config = &SandboxConfig{}
container := newTestContainerConfigNoop("cont-00001")
limit := int64(-1)
container.Resources.Memory = &specs.LinuxMemory{Limit: &limit}
sandbox.config.Containers = []ContainerConfig{container}
mem, needSwap, swap := sandbox.calculateSandboxMemory()
assert.Equal(t, mem, int64(0))
assert.Equal(t, needSwap, false)
assert.Equal(t, swap, int64(0))
}
func TestCreateSandboxEmptyID(t *testing.T) {
hConfig := newHypervisorConfig(nil, nil)
_, err := testCreateSandbox(t, "", MockHypervisor, hConfig, NetworkConfig{}, nil, nil)