-
-
Notifications
You must be signed in to change notification settings - Fork 472
Remaining low-priority clock issues and clock-step regression coverage #5582
Open
Labels
Description
Tracking issue for the remaining low-priority audit findings, plus the project-wide regression sweep. Split any item into its own issue if it grows.
Regression coverage: unit tests already inject ICurrentDateProvider fakes everywhere. This project should add cases simulating backward/forward clock steps and deep-sleep delays across the affected paths (tracer, session, replay, check-in) so the fixes are covered and future regressions are caught.
Remaining low-priority findings (audit §C4–C7, all LOW):
- C4 — App-start anchor projection.
TimeSpan(uptime + wall anchor) captures the wall anchor once;setStartedAt()back-projects assuming no step since process start → NTP sync shortly after boot shifts app-start span timestamps relative to later-anchored spans. - C5 —
SpanFrameMetricsCollector.toNanoTime(). Re-anchors wall-basedSentryLongDates into thenanoTimebase using the current offset; wrong by any step since the date was created, and across deep sleep → frames attributed to the wrong span windows. - C6 — Wall-clock TTLs/cleanup.
HostnameCache5h TTL;Sentry.classCreationTimestampvsFile.lastModified()for profiling-traces cleanup;CacheStrategyenvelope rotation ordered bylastModified();DefaultCompositePerformanceCollector30s auto-stop via wall diff + sampling onjava.util.Timer. - C7 — Informational.
Breadcrumb.compareToorders by capturedSystem.nanoTime()(restored-from-disk breadcrumbs get fresh nanos at parse → cross-restart ordering is parse-order); cross-typeSentryDatearithmetic (SentryNanotimeDatevsSentryLongDate) silently degrades to ms-precision wall math.
Source: JAVA-557 §C4–C7 + "Verification idea".
Metadata
Metadata
Assignees
Labels
Fields
Give feedbackNo fields configured for issues without a type.