Skip to content

Conversation

@DanielleMaywood
Copy link
Collaborator

@DanielleMaywood DanielleMaywood commented Nov 10, 2025

Previously, memory() function only implemented parent lookup for memory.max
but failed to do the same for memory.current and memory.stat files. This
caused errors when child cgroups didn't have these files present.

Changes:

  • Add memoryCurrentBytes() helper with parent fallback logic
  • Add memoryInactiveFileBytes() helper with parent fallback logic
  • Update memory() function to use new helpers

This ensures consistent behavior across all memory files and matches
the requirement that logic should lookup parent when files are not
found in the current cgroup.

Fixes: Parent lookup for memory.current and memory.stat


🤖 PR was written by Claude Sonnet 4.5 Thinking using Coder Mux and reviewed by a human 👩

Previously, memory() function only implemented parent lookup for memory.max
but failed to do the same for memory.current and memory.stat files. This
caused errors when child cgroups didn't have these files present.

Changes:
- Add memoryCurrentBytes() helper with parent fallback logic
- Add memoryInactiveFileBytes() helper with parent fallback logic
- Update memory() function to use new helpers
- Add comprehensive tests for parent lookup behavior

This ensures consistent behavior across all memory files and matches
the requirement that logic should lookup parent when files are not
found in the current cgroup.

Fixes: Parent lookup for memory.current and memory.stat
- Integrate parent lookup tests into TestStatter/CgroupV2/Kubernetes
- Add Memory/CurrentInParent test case
- Add Memory/StatInParent test case
- Follow existing test conventions using initFS and test data maps
- Remove standalone test file in favor of integration with existing suite
Following reviewer feedback:
- Add fsContainerCgroupV2KubernetesMissingMemoryCurrent fixture
- Add fsContainerCgroupV2KubernetesMissingMemoryStat fixture
- Update tests to use existing fixtures instead of creating new ones
- Matches existing test patterns (e.g. fsContainerCgroupV2KubernetesWithLimits)
@DanielleMaywood DanielleMaywood force-pushed the clistat-cgroup-memory-current branch from 96d34df to cefe71a Compare November 10, 2025 08:53
@DanielleMaywood DanielleMaywood marked this pull request as ready for review November 10, 2025 09:42
@DanielleMaywood DanielleMaywood changed the title Clistat cgroup memory current 🤖 fix: lookup parent cgroupv2 memory.current and memory.stat Nov 10, 2025
@DanielleMaywood DanielleMaywood merged commit 7f9eb31 into main Nov 10, 2025
30 checks passed
@DanielleMaywood DanielleMaywood deleted the clistat-cgroup-memory-current branch November 11, 2025 13:03
DanielleMaywood added a commit that referenced this pull request Nov 11, 2025
This PR abstracts a repeating parent lookup pattern in cgroupv2 using a
generic helper function. Relates to
#28 (comment)

## Changes

- **Added generic helper** - Handles parent cgroup lookups with
customizable fallback behavior
- **Applied to 5 methods**:
  - `cpuQuota()`
  - `cpuPeriod()` 
  - `memoryMaxBytes()`
  - `memoryCurrentBytes()`
  - `memoryInactiveFileBytes()`

---

🤖 PR was written by Claude Sonnet 4.5 Thinking using [Coder
Mux](https://github.com/coder/cmux) and reviewed by a human 👩
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants