Conversation
|
@blotus: There are no 'kind' label on this PR. You need a 'kind' label to generate the release automatically.
DetailsI am a bot created to help the crowdsecurity developers manage community feedback and contributions. You can check out my manifest file to understand my behavior and what I can do. If you want to use this for your project, you can check out the BirthdayResearch/oss-governance-bot repository. |
|
@blotus: There are no area labels on this PR. You can add as many areas as you see fit.
DetailsI am a bot created to help the crowdsecurity developers manage community feedback and contributions. You can check out my manifest file to understand my behavior and what I can do. If you want to use this for your project, you can check out the BirthdayResearch/oss-governance-bot repository. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #4481 +/- ##
==========================================
- Coverage 70.99% 70.48% -0.51%
==========================================
Files 505 522 +17
Lines 34790 35432 +642
==========================================
+ Hits 24698 24975 +277
- Misses 10091 10456 +365
Partials 1 1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Ran into this on v1.8.1 too, so it's still in the current release. Same spot as the report from 20 Aug: the panic is on pour, inside the uniq processor, not on overflow. Version was v1.8.1-909b5157 from the official docker image, build date 3 Sep. It happened during a scanner burst, a single source filling two http scenarios within a couple of seconds, and the crash came while the overflow was being processed. Nothing exotic in the setup. The process did not come back on its own. The container runs with Adding the scope here in case it is useful for prioritising. |
|
Tested this on v1.8.1 (aarch64, Arch Linux ARM) — the race is still present there, and this patch fixes it. I hit the same crash in production: agent died after ~11h30 with Reproducer: 87 Caddy JSON access-log lines from a single WordPress scanner ( A/B, alternating both binaries in the same loop, 20 iterations each:
Only variable is the cherry-pick of 761e851 onto the v1.8.1 tag (I did not include 60fe0aa, which only adds benchmarks). The constant On the writer side, in case it helps close the analysis in #4459: it is always a scenario filter calling
Plus One minor note: Happy to re-run the A/B on a rebased branch if that would help. |
|
/kind fix |
Fixes #4459.
Each bucket now gets its own copy of the two maps a scenario can write to.
EnrichedandUnmarshaledare not cloned:Unmarshaledis intended to be used only in parsers, and the various enrichment method cannot be called from a scenario.Cost, per (event, bucket) pour — realistic Caddy JSON event, M4 Pro:
End to end, a pour into 48 loaded scenarios with 3 matching goes from 418 to 439
allocs/op; the wall-clock difference is inside the noise of that benchmark.
As a side-effect, this also fixes a potential race conditions in the meta:
evt.SetMeta