Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

KronosClock returns stale cached time after device reboot if syncInBackground is called before getCurrentTime

Abierto
#67 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
45/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
kotlin
Área
networking

Línea de trabajo

Empieza en SntpService siguiendo syncInBackground, getCurrentTime, state e isCachedFromPreviousBoot durante el manejo de reinicios. Revisa PR #51 y el issue #61 para conocer el comportamiento relacionado de state; se considera terminado cuando no se devuelve la hora almacenada en caché que está obsoleta durante la sincronización y la caché no se borra incorrectamente después de cambios manuales de hora.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

PR https://github.com/lyft/Kronos-Android/pull/51 attempted to fix an issue where the local cache was not cleared after a device reboot, but it overlooked another edge case.

If the user calls syncInBackground before getCurrentTime, the SntpService.state variable will be set to State.SYNCING. As a result, the isCachedFromPreviousBoot check always evaluates to false while the sync is in progress. This creates a short window (a few seconds) during which getCurrentTime may return an incorrectly computed time based on a stale local cache.

Additionally, PR https://github.com/lyft/Kronos-Android/pull/51 removes State.INIT, which introduces another issue described in https://github.com/lyft/Kronos-Android/issues/61, where the local cache is cleared every time the user manually changes the system time.

Lenguaje dominante
Kotlin
Estrellas
287
Forks
17
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de lyft/Kronos-Android

Todos los issues de lyft/Kronos-Android

Issues similares

Más issues de Kotlin

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.