getsentry / getsentry/sentry-java

Session Replay drives interval/window math from the wall clock

Offen
#5,578 1 Kommentar 0 Reaktionen 1 zugewiesene Person Beansprucht von @runningcode Auf GitHub ansehen
Platform: Java
Vorherrschende Sprache
Kotlin
Sterne
1.4k
Forks
478
Ø Merge
2 T. 23 Std.
Gemergte PRs (30 T.)
67

Beschreibung

Audit finding **B3 — actual bug, MEDIUM** (manifests when the clock steps mid-recording).

Epoch is required for RRWeb payload timestamps (that part is correct), but the same wall values also drive windows/durations:

* Segment durations and the 1h max-session deadline are `now - startEpoch` diffs — `sentry-android-replay/src/main/java/io/sentry/android/replay/capture/SessionCaptureStrategy.kt:107` (segment) and `:127` (session duration).
* `BufferCaptureStrategy` trim-to-last-30s and `ReplayCache.createVideoOf` iterate epoch-millis windows; frame files are named by epoch millis.
* `ReplayGestureConverter.kt`: `timeOffset = now - touchMoveBaseline`.

A backward step mid-recording → frames "newer than now": trim can wipe valid frames, segment windows miss/duplicate frames, gesture offsets go negative. A forward step → premature 1h cutoff. NTP/carrier/user steps on phones are realistic.

Source: [JAVA-557]() §B3.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.