Description
The flow correlator accepts any positive duration, but its key calculation truncates the configured window to whole seconds. A sub-second window maps every record for a Community ID into one bucket, and a non-integral duration uses different boundaries for grouping and expiry. Distinct connection windows can therefore merge and produce wrong bytes, fragment counts, pairing and partial-window status.
Acceptance Criteria
- #1 A regression with a sub-second window proves records for the same Community ID in distinct configured windows do not merge
- #2 A regression with a non-integral-second window proves grouping and expiry use the same exact duration boundary
- #3 Existing whole-second and whole-minute correlation behavior remains unchanged
Definition of Done
- #1 just check
- #2 just gen (if any generated artifact changed) and the diff committed
Implementation Plan
Write failing sub-second and non-integral-duration correlator tests, then compute the bucket from the full duration without a whole-second truncation and run the focused flow suite.
Final Summary
Fixed by 2a8e9c98. Correlation buckets now divide Unix nanoseconds by the exact configured duration, preserving sub-second and non-integral-second boundaries. Both regressions failed before the fix and passed after it; the integrated race suite and just check passed. Reviewed in the combined flow slice, whose final pass completed with zero findings.