Skip to content

[pull] master from getsentry:master#2001

Merged
pull[bot] merged 17 commits into
KingDEV95:masterfrom
getsentry:master
May 27, 2026
Merged

[pull] master from getsentry:master#2001
pull[bot] merged 17 commits into
KingDEV95:masterfrom
getsentry:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented May 27, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

amy-chen23 and others added 17 commits May 26, 2026 14:55
…115533)

Resolves
[ID-1271](https://linear.app/getsentry/issue/ID-1271/indicate-duration-when-since-first-seen-is-selected).

On issues page, when filtering by time range, Since First Seen also
displays duration.

---------

Co-authored-by: Scott Cooper <scttcper@gmail.com>
Co-authored-by: getsantry[bot] <66042841+getsantry[bot]@users.noreply.github.com>
Co-authored-by: Shashank Jarmale <shashank.jarmale@sentry.io>
…ndler (#116246)

The `user_service.serialize_many()` call and `IgnoredStatusDetails`
construction were mistakenly placed inside the `for group in
group_list:` loop; neither depends on the `group`. We should only run
this serialization and construction once. No change in behavior, just
removing the redundant calls.
…oint (#116237)

Replaces the `get_filter_params` project resolution mechanism with a
direct
`project` query parameter in the latest base snapshot endpoint.

The previous approach used `get_filter_params` which resolved project
IDs
from request parameters and raised `NoProjects` when none matched. This
was
unnecessarily complex for this endpoint — callers already know the
project
they want. The new approach accepts an optional `project` query
parameter
and filters directly, removing the `NoProjects` import and error path
entirely. When no project is specified, the query returns results across
all
projects in the organization (filtered by app_id).
Properly handle missing groups in trace endpoint

Fixes SENTRY-5KWJ
…116247)

This error is noisy and not really buying us much, switching down to info level logs. We can get it from our log provider if it's important

Fixes SENTRY-4D0M

<!-- Describe your PR here. -->
…16147)

## Summary

Companion to
[getsentry/snuba#7955](getsentry/snuba#7955),
which removes the deprecated standalone `spans` storage from snuba. This
PR drops the sentry tests that exercise that storage so the snuba PR can
pass CI.

- Remove the two `OrganizationSpansSamplesEndpoint` cases
(`test_is_using_sample_rate`,
`test_is_segment_properly_converted_in_filter`) that hit the legacy
`spans_indexed` code path in the `/spans-samples/` endpoint.
`test_is_using_sample_rate` is the actual CI failure (returns 500 from
snuba once the storage is gone); the other only passes because it mocks
`raw_snql_query`, but it still asserts behavior of the removed storage.
The remaining cases in this class and the separate
`OrganizationSpansSamplesEAPRPCEndpointTest` already cover the supported
EAP path (`dataset=spans`).
- Slim down `tests/sentry/search/events/builder/test_spans_indexed.py`
to only the `SpansEAPQueryBuilder` attribute parametrization. The other
tests exercised `SpansIndexedQueryBuilder` against
`Dataset.SpansIndexed`, the query builder for the storage being removed.

## Follow-up

The sentry side still has dead production code targeting the legacy
storage (`SpansIndexedQueryBuilder`, `sentry.snuba.spans_indexed`, the
non-EAP branch in `OrganizationSpansSamplesEndpoint`, and the
`Dataset.SpansIndexed` references in `organization_traces.py` /
`utils/snuba.py`). Removing that is out of scope here and will land in a
separate PR.


Agent transcript:
https://claudescope.sentry.dev/share/NARO2WbeGu6ID7RCestO9hzZztsIIMdAaQg5mGyHDtQ
…eature flag check (#116259)

Fix this feature flag check so that it runs on the correct item rather
than relying on a leaked loop variable.
…#116251)

When an API token's user no longer exists, transform_auth sets the user
to AnonymousUser which lacks is_sentry_app. Use getattr with a False
default, matching the safe pattern in access.py.

Fixes SENTRY-5PWZ

<!-- Describe your PR here. -->
removes stacking fight by drawing replay's breadcrumb connector as a row
background instead of an overlapping element

refs #116209 that was the wrong solution
`event_id` is always defined in this branch, so removing this redundant
check in `OrganizationGroupIndexEndpoint`.
…#116262)

Removing unused logger and migrating to standard logging pattern in this
file.
Follow up to #116052 to remove
most uses of `AlertRuleSerializerResponse` and
`DetailedIncidentSerializerResponse` - the only remaining place they're
used is in the forwards compatible serializers to make sure the payload
shape matches the old one.
)

Updates trace item attributes tests to align with Snuba's removal of
boolean attribute double-writing.

Snuba PR #7689 removed the redundant practice of writing boolean
attributes to both `attributes_bool` and `attributes_float_*` columns.
Booleans are now only stored in `attributes_bool`, eliminating data
duplication and improving data integrity.

Two tests in our codebase had TODO comments explicitly noting they
expected the old double-writing behavior:
- `test_empty_attribute_type_for_all_attribute_types`
- `test_multiple_attribute_types`

This PR removes those expectations and updates the assertions to match
the new behavior where booleans only appear as boolean types, not as
number types.

## Changes
- Removed assertions checking for `tags[tag.boolean,number]` (the
double-written boolean as number)
- Uncommented length assertions that were waiting for double-writing
removal
- Added proper assertions for the actual number attributes
`tags[tag.number,number]`

## Note
There are additional failing tests
(`test_trace_metrics_boolean_attributes`, `test_boolean_attributes`)
that appear to be caused by a separate Snuba issue where attributes from
certain items are not being returned in queries. These will need
investigation in Snuba itself.

Refs getsentry/snuba#7689

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-authored-by: Pierre Massat <pierre.massat@sentry.io>
…failures (#116267)

Reduce `FETCH_MAX_WORKERS` from 32 → 16 and `FETCH_BATCH_SIZE` from 200
→ 100 in the snapshot image download endpoint.

Large snapshots (~40K images) cause the streaming download to fail after
~15 seconds with an HTTP/2 `INTERNAL_ERROR`. The server-side logs show:
- 2.37 GB yielded at ~157 MB/s throughput
- 906 MB RSS (well past the 600 MB `reload_on_rss` threshold)
- Only 3,947 / ~40,000 images delivered before `client_disconnect`
- 0 fetch failures — the objectstore reads are fine, the transport layer
is the bottleneck

The high concurrency causes Python memory fragmentation (32 threads
churning through ~600 KB images) that pushes RSS past container limits,
and the throughput overwhelms HTTP/2 flow control. Halving both
constants reduces memory pressure and data rate while keeping each batch
well within the 90s proxy timeout.
instead of attempting to overrides the styles of a timeline item render
a custom timeline component. It was never really a timeline item. Adds
missing error boundary to sidebar.

before

<img width="312" height="151" alt="image"
src="https://github.com/user-attachments/assets/1e3c5a55-0b49-4295-8311-f92dad965f7a"
/>


after

<img width="335" height="127" alt="image"
src="https://github.com/user-attachments/assets/765977b8-d9ad-47dd-823e-87b65c30bb6d"
/>
If the org is not on a seat based seer plan, they do not need to
configure SCM to be allowed to use autofix.
@pull pull Bot locked and limited conversation to collaborators May 27, 2026
@pull pull Bot added the ⤵️ pull label May 27, 2026
@pull pull Bot merged commit bbad42a into KingDEV95:master May 27, 2026
1 of 3 checks passed
@github-actions github-actions Bot added Scope: Frontend Automatically applied to PRs that change frontend components Scope: Backend Automatically applied to PRs that change backend components labels May 27, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

⤵️ pull Scope: Backend Automatically applied to PRs that change backend components Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants