getsentry / getsentry/sentry-java
Session seq is raw epoch millis; duration is masked with Math.abs
- Linguagem predominante
- Kotlin
- Estrelas
- 1.4k
- Forks
- 478
- Merge médio
- 3d 4h
- PRs com merge (30d)
- 72
Descrição
Audit finding **C2 — theoretical, LOW-MEDIUM**.
`Session` uses raw epoch millis for `seq` and `Math.abs` for duration (`sentry/src/main/java/io/sentry/Session.java`):
* `seq` is set from `getSequenceTimestamp()`, which returns `timestamp.getTime()` (raw epoch millis) — `Session.java:309`, invoked from the session-update path at `:227`. A backward clock step between updates → the newer update has a smaller `seq` → the server can discard the latest session state (lost end/error counts).
* `calculateDurationTime` uses `Math.abs``(timestamp.getTime() - started.getTime())` (`Session.java:240`), which masks negative durations rather than surfacing them.
Source: [JAVA-557]() §C2.
Guia de contribuição
Direção de pesquisa
Leia sentry/src/main/java/io/sentry/Session.java, especialmente o caminho de atualização da sessão próximo à linha 227, calculateDurationTime próximo à linha 240 e getSequenceTimestamp próximo à linha 309. Rastreie como as alterações do relógio afetam a ordenação das sequências e o tratamento da duração e, em seguida, identifique os testes existentes relevantes ou os pontos de entrada dos testes. Considera-se concluído quando os casos de avanço do relógio relatados forem tratados sem perder o estado mais recente da sessão nem mascarar durações negativas.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- java
- Domínio
- observability
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Pouca atividade
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 48/100