diff --git a/frontend-modern/src/components/Docker/DockerUnifiedTable.tsx b/frontend-modern/src/components/Docker/DockerUnifiedTable.tsx index fd8d862..a1de9e7 100644 --- a/frontend-modern/src/components/Docker/DockerUnifiedTable.tsx +++ b/frontend-modern/src/components/Docker/DockerUnifiedTable.tsx @@ -1401,12 +1401,9 @@ const DockerContainerRow: Component<{ {(column) => ( {renderCell(column)} @@ -2231,12 +2228,9 @@ const DockerServiceRow: Component<{ {(column) => ( {renderCell(column)} diff --git a/internal/alerts/alerts_test.go b/internal/alerts/alerts_test.go index 2e15fcc..6f8dde9 100644 --- a/internal/alerts/alerts_test.go +++ b/internal/alerts/alerts_test.go @@ -14740,7 +14740,6 @@ func TestLoadActiveAlerts(t *testing.T) { t.Run("skips old alerts", func(t *testing.T) { m := newTestManager(t) - m.ClearActiveAlerts() // Create an old alert (>24 hours) startTime := time.Now().Add(-25 * time.Hour) @@ -14761,8 +14760,10 @@ func TestLoadActiveAlerts(t *testing.T) { // Save to disk _ = m.SaveActiveAlerts() - // Clear and reload - m.ClearActiveAlerts() + // Clear in-memory map only (don't use ClearActiveAlerts which triggers async save) + m.mu.Lock() + m.activeAlerts = make(map[string]*Alert) + m.mu.Unlock() err := m.LoadActiveAlerts() if err != nil { @@ -14780,7 +14781,6 @@ func TestLoadActiveAlerts(t *testing.T) { t.Run("skips old acknowledged alerts", func(t *testing.T) { m := newTestManager(t) - m.ClearActiveAlerts() // Create an alert acknowledged >1 hour ago startTime := time.Now().Add(-30 * time.Minute) @@ -14805,8 +14805,10 @@ func TestLoadActiveAlerts(t *testing.T) { // Save to disk _ = m.SaveActiveAlerts() - // Clear and reload - m.ClearActiveAlerts() + // Clear in-memory map only (don't use ClearActiveAlerts which triggers async save) + m.mu.Lock() + m.activeAlerts = make(map[string]*Alert) + m.mu.Unlock() err := m.LoadActiveAlerts() if err != nil { @@ -14824,7 +14826,6 @@ func TestLoadActiveAlerts(t *testing.T) { t.Run("restores acknowledgment state", func(t *testing.T) { m := newTestManager(t) - m.ClearActiveAlerts() // Create an acknowledged alert startTime := time.Now().Add(-10 * time.Minute) @@ -14849,8 +14850,11 @@ func TestLoadActiveAlerts(t *testing.T) { // Save to disk _ = m.SaveActiveAlerts() - // Clear and reload - m.ClearActiveAlerts() + // Clear in-memory maps only (don't use ClearActiveAlerts which triggers async save) + m.mu.Lock() + m.activeAlerts = make(map[string]*Alert) + m.ackState = make(map[string]ackRecord) + m.mu.Unlock() err := m.LoadActiveAlerts() if err != nil { diff --git a/pkg/fsfilters/filters.go b/pkg/fsfilters/filters.go index 213f577..2665632 100644 --- a/pkg/fsfilters/filters.go +++ b/pkg/fsfilters/filters.go @@ -170,5 +170,16 @@ func ShouldSkipFilesystem(fsType, mountpoint string, totalBytes, usedBytes uint6 } } + // EnhanceCP uses /var/container_tmp/{uuid}/merged for container overlays. + // Filter these as they're ephemeral container layers, not user storage. Related to #790. + if strings.Contains(mountpoint, "/container_tmp/") { + for _, pattern := range containerOverlayPatterns { + if strings.Contains(mountpoint, pattern) { + reasons = append(reasons, "container-overlay") + break + } + } + } + return len(reasons) > 0, reasons } diff --git a/pkg/fsfilters/filters_test.go b/pkg/fsfilters/filters_test.go index 67b7e1b..1298907 100644 --- a/pkg/fsfilters/filters_test.go +++ b/pkg/fsfilters/filters_test.go @@ -179,6 +179,9 @@ func TestShouldSkipFilesystem(t *testing.T) { {"enhance containers overlay", "ext4", "/var/local/enhance/containers/abc123/overlay/merged", 1000000, 500000, true}, {"custom containers diff", "ext4", "/opt/containers/myapp/diff/layer", 1000000, 500000, true}, {"custom containers overlay2", "ext4", "/data/containers/xyz/overlay2/layer1", 1000000, 500000, true}, + // EnhanceCP container_tmp paths (issue #790) + {"enhancecp container_tmp merged", "overlay", "/var/container_tmp/0d6eaae4-1aa0-4aad-a9d9-d430329c2e38/merged", 1000000, 500000, true}, + {"enhancecp container_tmp overlay", "overlay", "/var/container_tmp/abc123/overlay/layer", 1000000, 500000, true}, // TrueNAS SCALE Docker overlay paths (issue #718) {"truenas ix-apps docker overlay2", "zfs", "/mnt/.ix-apps/docker/overlay2/6c9aad59ec9b0bc33d5e374/merged", 173 * 1024 * 1024 * 1024 * 1024, 399 * 1024 * 1024, true},