Skip to content

[3.15] gh-149430: Fix edge-cases in profiling.sampling outputs (GH-149431)#149602

Merged
pablogsal merged 1 commit intopython:3.15from
miss-islington:backport-9587726-3.15
May 9, 2026
Merged

[3.15] gh-149430: Fix edge-cases in profiling.sampling outputs (GH-149431)#149602
pablogsal merged 1 commit intopython:3.15from
miss-islington:backport-9587726-3.15

Conversation

@miss-islington
Copy link
Copy Markdown
Contributor

@miss-islington miss-islington commented May 9, 2026

The line highlights on the heatmap are driven by the URL hash and the
:target selector. When clicking a caller/callee link for the line that
was already selected, the hash doesn't change, so the browser keeps the
existing target state and doesn't restart the animation. Due to this the
highlight only works the first time.

With this fix, line navigation goes through JavaScript. If the target
URL already points to the current location, the highlight is replayed by
clearing the animation, forcing style recalculation, and restoring it.

The baseline_self variable isn't initialized for structural elided
roots. This variable is accessed later unconditionally and leads to a
crash.

The child process ends up being invoked with --diff_flamegraph instead
of the correct argument.
(cherry picked from commit 9587726)

Co-authored-by: László Kiss Kollár kiss.kollar.laszlo@gmail.com

…onGH-149431)

The line highlights on the heatmap are driven by the URL hash and the
`:target` selector. When clicking a caller/callee link for the line that
was already selected, the hash doesn't change, so the browser keeps the
existing target state and doesn't restart the animation. Due to this the
highlight only works the first time.

With this fix, line navigation goes through JavaScript. If the target
URL already points to the current location, the highlight is replayed by
clearing the animation, forcing style recalculation, and restoring it.

The `baseline_self` variable isn't initialized for structural elided
roots. This variable is accessed later unconditionally and leads to a
crash.

The child process ends up being invoked with `--diff_flamegraph` instead
of the correct argument.
(cherry picked from commit 9587726)

Co-authored-by: László Kiss Kollár <kiss.kollar.laszlo@gmail.com>
@miss-islington miss-islington requested a review from pablogsal as a code owner May 9, 2026 13:06
@pablogsal pablogsal enabled auto-merge (squash) May 9, 2026 13:10
@pablogsal pablogsal merged commit dc8c32e into python:3.15 May 9, 2026
55 checks passed
@miss-islington miss-islington deleted the backport-9587726-3.15 branch May 9, 2026 13:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants