Conversation
… hypothesis Follow-up to #949/#950's residual component-tests flakiness investigation (15-17/30 failing even after kubescape/storage#397's sharded-writer fix). #950 showed that raising shard count 8->16 and SQLite pool 10->24 did NOT help (21/32 failed, arguably worse), ruling out shard/pool headroom as the cause and pointing at the storage pod's CPU quota (500m limit, unchanged across all experiments so far) as a more likely constraint: under a starved CPU quota, more concurrent write-path goroutines add scheduling overhead without proportional throughput gain. This is a diagnostic experiment only, isolated from any shard-count change (shards are no longer configurable - fixed at 8 via DefaultSingleWriterShards in kubescape/storage). Bumps storage pod requests.cpu 100m->500m and limits.cpu 500m->2000m in tests/chart/values.yaml to see whether the residual failures - and specifically the storage-side "context deadline exceeded" / "sqlite: step: interrupted" errors - go away with real CPU headroom. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LCMGT6Po2tSr1VEDVrbbYd
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe test chart increases the storage component’s CPU request from ChangesStorage CPU Resources
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to This updates the storage workload used by component tests to request and allow more CPU for the starvation experiment. No concrete merge-blocking risk remains. Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Performance Benchmark ResultsNode-Agent Resource Usage
Dedup EffectivenessNo data available. |
|
Result: 18/31 failed — essentially identical to #951's same-day 17/31 baseline (if anything one worse), despite the storage pod's CPU limit going 500m→2000m (4x) and request 100m→500m (5x), confirmed applied in the actual helm install log for this run. Hypothesis 1 (storage pod CPU starvation) is refuted. More CPU headroom on the storage pod's own cgroup made no measurable difference to either the failure count or the error signature. Traced one failing job (Test_01_BasicAlertTest) end-to-end: the container profile write path itself is timing out — New leading hypothesis: the bottleneck is node-level CPU oversubscription on the shared GitHub-hosted runner, not the storage pod's own cgroup limit. Each CI job's whole stack (Kind control-plane, storage, node-agent, kube-prometheus-stack's ~5 pods, kubelet/containerd, the Not pursuing further per-pod resource tuning here. Closing this experiment; next step should instrument Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com |
Purpose
Diagnostic experiment, not a proposed fix — do not merge.
Follow-up to the storage single-writer investigation (kubescape/storage#397, released v0.0.333). That fix eliminated the sustained 20-minute hangs, but component-tests still shows an elevated failure rate: 15-17/30 jobs failing (confirmed fresh today on #951: 17/31), vs a historical pre-regression baseline of 0-1/30.
#950 tested whether the residual failures were a shard/pool headroom problem (singleWriterShards 8→16, sqlitePoolSize 10→24) — result was 21/32 failed, worse, not better. That rules out shard/pool count as the lever and points at the storage pod's CPU quota instead:
tests/chart/values.yaml'sstorage.resourceshas stayed atrequests.cpu: 100m/limits.cpu: 500macross every experiment so far. Under a starved CPU quota, more concurrent write-path goroutines (the 8 fixed shards) add scheduling overhead without proportional throughput gain, which would explain why more shards didn't help.This PR bumps
storage.resources.requests.cpu100m→500m andlimits.cpu500m→2000m, with no shard-count or other change, to isolate this variable. Looking for:context deadline exceeded/sqlite: step: interruptederrors specifically disappear from logs (vs the heterogeneous non-storage assertion failures, which this change should NOT affect)Test plan
Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com
Claude-Session: https://claude.ai/code/session_01LCMGT6Po2tSr1VEDVrbbYd
https://claude.ai/code/session_01LCMGT6Po2tSr1VEDVrbbYd
AI-skills: none
Summary by CodeRabbit