getsentry / getsentry/sentry-java

Session Replay drives interval/window math from the wall clock

Đang mở
#5,578 1 bình luận 0 reaction 1 người được giao Được @runningcode nhận Xem trên GitHub
Platform: Java
Ngôn ngữ chính
Kotlin
Star
1.4k
Fork
478
Merge trung bình
2 ngày 23 giờ
Pull request đã merge (30 ngày)
67

Mô tả

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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.