Skip to content

test(node-core): Fix minute-boundary race in session-aggregate tests - #20437

Merged
nicohrubec merged 1 commit into
developfrom
nh/fix-session-aggregate-race
Apr 22, 2026
Merged

test(node-core): Fix minute-boundary race in session-aggregate tests#20437
nicohrubec merged 1 commit into
developfrom
nh/fix-session-aggregate-race

Conversation

@nicohrubec

@nicohrubecnicohrubec commented Apr 22, 2026

Copy link
Copy Markdown
Member

The SDK buckets sessions by minute-rounded timestamp. When a test's sequential requests run across a minute boundary, the payload splits across two aggregates buckets and the existing single-bucket assertion fails. To resolve this, this PR replaces the single bucket check with a sum across all returned buckets to ensure the total count is correct even if events are split across buckets.

The same pattern exists in our node-core and node integration tests.

Closes#20283
Closes#20436

The SDK buckets session counts by minute-rounded timestamp (see
`packages/node-core/src/integrations/http/httpServerIntegration.ts`
lines 290-292). When the test's sequential requests straddle a minute
boundary, the emitted payload splits across two aggregate buckets and
the existing `aggregates: [{...}]` assertion fails — a pure timing
race, not a code bug.
Replace the hard-coded single-bucket assertion with an inline reduce
that sums `exited`/`errored`/`crashed` across all returned buckets
and asserts on the totals, matching the SDK's real behaviour.
Applies to all 5 session-aggregate integration tests (2 in node-core,
3 in node). Two of them already flake (#20283, #20436); the other
three share the same pattern and are preventively fixed.
Closes#20283Closes#20436
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

size-limit report 📦

PathSize% ChangeChange
@sentry/browser25.88 kB--
@sentry/browser - with treeshaking flags24.35 kB--
@sentry/browser (incl. Tracing)43.81 kB--
@sentry/browser (incl. Tracing + Span Streaming)45.5 kB--
@sentry/browser (incl. Tracing, Profiling)48.73 kB--
@sentry/browser (incl. Tracing, Replay)82.98 kB--
@sentry/browser (incl. Tracing, Replay) - with treeshaking flags72.5 kB--
@sentry/browser (incl. Tracing, Replay with Canvas)87.67 kB--
@sentry/browser (incl. Tracing, Replay, Feedback)99.93 kB--
@sentry/browser (incl. Feedback)42.7 kB--
@sentry/browser (incl. sendFeedback)30.55 kB--
@sentry/browser (incl. FeedbackAsync)35.55 kB--
@sentry/browser (incl. Metrics)27.16 kB--
@sentry/browser (incl. Logs)27.29 kB--
@sentry/browser (incl. Metrics & Logs)27.98 kB--
@sentry/react27.62 kB--
@sentry/react (incl. Tracing)46.05 kB--
@sentry/vue30.71 kB--
@sentry/vue (incl. Tracing)45.62 kB--
@sentry/svelte25.89 kB--
CDN Bundle28.57 kB--
CDN Bundle (incl. Tracing)46.08 kB--
CDN Bundle (incl. Logs, Metrics)29.95 kB--
CDN Bundle (incl. Tracing, Logs, Metrics)47.12 kB--
CDN Bundle (incl. Replay, Logs, Metrics)68.92 kB--
CDN Bundle (incl. Tracing, Replay)83.14 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics)84.17 kB--
CDN Bundle (incl. Tracing, Replay, Feedback)88.61 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)89.69 kB--
CDN Bundle - uncompressed83.59 kB--
CDN Bundle (incl. Tracing) - uncompressed137.62 kB--
CDN Bundle (incl. Logs, Metrics) - uncompressed87.73 kB--
CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed141.03 kB--
CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed211.31 kB--
CDN Bundle (incl. Tracing, Replay) - uncompressed255.06 kB--
CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed258.46 kB--
CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed267.97 kB--
CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed271.36 kB--
@sentry/nextjs (client)48.58 kB--
@sentry/sveltekit (client)44.22 kB--
@sentry/node-core58.02 kB+0.02%+6 B 🔺
@sentry/node174.89 kB+0.01%+6 B 🔺
@sentry/node - without tracing97.98 kB+0.02%+13 B 🔺
@sentry/aws-serverless115.21 kB+0.02%+19 B 🔺

View base workflow run

@nicohrubec
nicohrubec marked this pull request as ready for review April 22, 2026 07:26
@nicohrubec
nicohrubec requested review from a team, logaretm and s1gr1d and removed request for a teamApril 22, 2026 07:26
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants

@nicohrubec@s1gr1d