From 1ea3bb4563e6ee6f72bfc8b9d82fe6898ee87478 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Mon, 21 Sep 2026 12:30:41 +0800 Subject: [PATCH] Fix OOM report generated on clean shutdown --- experimental/libbox/oom_report.go | 4 ---- service/oomkiller/recorder.go | 15 +-------------- 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/experimental/libbox/oom_report.go b/experimental/libbox/oom_report.go index 6cccdb46..d7bfcf58 100644 --- a/experimental/libbox/oom_report.go +++ b/experimental/libbox/oom_report.go @@ -31,7 +31,6 @@ var oomReportProfiles = []string{ type oomReportMetadata struct { reportMetadata RecordedAt string `json:"recordedAt"` - EndedAt string `json:"endedAt,omitempty"` MemoryLimit string `json:"memoryLimit,omitempty"` MemoryUsage string `json:"memoryUsage"` AvailableMemory string `json:"availableMemory,omitempty"` @@ -51,9 +50,6 @@ func OOMRecorderOptions(startedService *daemon.StartedService) oomkiller.Recorde Snapshots: status.Snapshots, } metadata.StartedAt = status.StartedAt.UTC().Format(time.RFC3339) - if !status.EndedAt.IsZero() { - metadata.EndedAt = status.EndedAt.UTC().Format(time.RFC3339) - } if status.MemoryLimit > 0 { metadata.MemoryLimit = byteformats.FormatMemoryBytes(status.MemoryLimit) } diff --git a/service/oomkiller/recorder.go b/service/oomkiller/recorder.go index c8805ef8..1ec6b4fa 100644 --- a/service/oomkiller/recorder.go +++ b/service/oomkiller/recorder.go @@ -64,7 +64,6 @@ type RecorderOptions struct { type ReportStatus struct { StartedAt time.Time RecordedAt time.Time - EndedAt time.Time MemoryLimit uint64 PeakMemory uint64 MinAvailable uint64 @@ -87,7 +86,6 @@ type Recorder struct { closed bool draftCreated bool draftLock *os.File - notable bool status ReportStatus lastRowAt time.Time lastRowState pressureState @@ -200,16 +198,8 @@ func (r *Recorder) Close() error { if !r.draftCreated { return nil } - if !r.notable { - r.releaseDraftLocked() - return os.RemoveAll(r.draftPath) - } - r.status.EndedAt = time.Now() - r.writeLogLocked() - r.writeMetadataLocked() r.releaseDraftLocked() - promoteDirectory(r.draftPath, filepath.Join(r.basePath, ReportsDirectoryName)) - return nil + return os.RemoveAll(r.draftPath) } func (r *Recorder) releaseDraftLocked() { @@ -328,7 +318,6 @@ func (r *Recorder) sample(sample memorySample, state pressureState, connections func (r *Recorder) recordPressure(sample memorySample) { r.access.Lock() defer r.access.Unlock() - r.notable = true r.observeLocked(sample) r.denseUntil = time.Now().Add(denseSampleWindow) r.appendEventLocked(eventRecord{Type: eventTypePressure, MemoryBytes: sample.usage, AvailableBytes: sample.available}) @@ -345,7 +334,6 @@ func (r *Recorder) recordStateChange(state pressureState, sample memorySample) { func (r *Recorder) recordReset(reason string, before memorySample, after memorySample, connections int, reportOnly bool) { r.access.Lock() defer r.access.Unlock() - r.notable = true r.observeLocked(before) r.denseUntil = time.Now().Add(denseSampleWindow) r.appendEventLocked(eventRecord{ @@ -421,7 +409,6 @@ func (r *Recorder) snapshot(reason string, sample memorySample, force bool) erro } r.access.Lock() defer r.access.Unlock() - r.notable = true r.status.Snapshots = sequence r.observeLocked(sample) r.writeLogLocked()