Merge pull request #91 from Random-Liu/support-oom-event
Handle OOM event.
This commit is contained in:
commit
054bcfbf68
@ -120,6 +120,13 @@ func (c *criContainerdService) handleEvent(e *task.Event) {
|
||||
return
|
||||
}
|
||||
case task.Event_OOM:
|
||||
// TODO(random-liu): [P1] Handle OOM event.
|
||||
err := c.containerStore.Update(e.ID, func(meta metadata.ContainerMetadata) (metadata.ContainerMetadata, error) {
|
||||
meta.Reason = oomExitReason
|
||||
return meta, nil
|
||||
})
|
||||
if err != nil && !metadata.IsNotExistError(err) {
|
||||
glog.Errorf("Failed to update container %q oom: %v", e.ID, err)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -100,13 +100,11 @@ func TestHandleEvent(t *testing.T) {
|
||||
containerdErr: fmt.Errorf("random error"),
|
||||
expected: &testMetadata,
|
||||
},
|
||||
"should not update state for non-exited events": {
|
||||
"should not update state for irrelevant events": {
|
||||
event: &task.Event{
|
||||
ID: testID,
|
||||
Type: task.Event_OOM,
|
||||
Pid: testPid,
|
||||
ExitStatus: 1,
|
||||
ExitedAt: testExitedAt,
|
||||
ID: testID,
|
||||
Type: task.Event_PAUSED,
|
||||
Pid: testPid,
|
||||
},
|
||||
metadata: &testMetadata,
|
||||
containerdContainer: &testContainerdContainer,
|
||||
@ -123,6 +121,22 @@ func TestHandleEvent(t *testing.T) {
|
||||
containerdContainer: &testContainerdContainer,
|
||||
expected: &testFinishedMetadata,
|
||||
},
|
||||
"should update exit reason when container is oom killed": {
|
||||
event: &task.Event{
|
||||
ID: testID,
|
||||
Type: task.Event_OOM,
|
||||
},
|
||||
metadata: &testMetadata,
|
||||
expected: &metadata.ContainerMetadata{
|
||||
ID: testID,
|
||||
Name: "test-name",
|
||||
SandboxID: "test-sandbox-id",
|
||||
Pid: testPid,
|
||||
CreatedAt: testCreatedAt,
|
||||
StartedAt: testStartedAt,
|
||||
Reason: oomExitReason,
|
||||
},
|
||||
},
|
||||
} {
|
||||
t.Logf("TestCase %q", desc)
|
||||
c := newTestCRIContainerdService()
|
||||
|
@ -50,6 +50,8 @@ const (
|
||||
completeExitReason = "Completed"
|
||||
// errorExitReason is the exit reason when container exits with code non-zero.
|
||||
errorExitReason = "Error"
|
||||
// oomExitReason is the exit reason when process in container is oom killed.
|
||||
oomExitReason = "OOMKilled"
|
||||
// unknownExitCode is the exit code when exit reason is unknown.
|
||||
unknownExitCode = 255
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user