Skip to content

Remaining low-priority clock issues and clock-step regression coverage #5582

Description

@runningcode

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-based SentryLongDates into the nanoTime base 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. HostnameCache 5h TTL; Sentry.classCreationTimestamp vs File.lastModified() for profiling-traces cleanup; CacheStrategy envelope rotation ordered by lastModified(); DefaultCompositePerformanceCollector 30s auto-stop via wall diff + sampling on java.util.Timer.
  • C7 — Informational. Breadcrumb.compareTo orders by captured System.nanoTime() (restored-from-disk breadcrumbs get fresh nanos at parse → cross-restart ordering is parse-order); cross-type SentryDate arithmetic (SentryNanotimeDate vs SentryLongDate) silently degrades to ms-precision wall math.

Source: JAVA-557 §C4–C7 + "Verification idea".

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions