🤖 fix: lookup parent cgroupv2 memory.current and memory.stat#28
Merged
DanielleMaywood merged 5 commits intomainfrom Nov 10, 2025
Merged
🤖 fix: lookup parent cgroupv2 memory.current and memory.stat#28DanielleMaywood merged 5 commits intomainfrom
DanielleMaywood merged 5 commits intomainfrom
Conversation
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)
96d34df to
cefe71a
Compare
johnstcn
approved these changes
Nov 10, 2025
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 👩
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
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 👩