go-cache-plugin: stale build object served after a source change (shared cache)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Necesita aclaración
- Estado de actividad
- Activo
- Stack tecnológico
- aws, go
- Área
- build-system, cloud
Línea de trabajo
No se nombran archivos ni tests. Empieza rastreando la construcción de la clave actionID del plugin y el manejo de outputID por parte de Get; después compara esas suposiciones con el comportamiento de la caché de cmd/go para toolchains y variantes compartidos; el trabajo estará terminado cuando se haya acordado el alcance de la corrección y haya evidencia de que el objeto obsoleto de la caché compartida ya no se sirve.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
Running many concurrent CI jobs against a single shared S3 cache prefix, a build occasionally compiles a package from stale source at a commit where that package's source has changed — the cache returns an object whose inputs no longer match. It surfaces as a coverage profile containing block ranges from two different revisions of the same file, and the affected job shows a ~99.9% cache-hit rate, so the stale bytes came from the cache, not a local rebuild. A manual purge of the prefix clears it; it recurs within a pipeline or two.
The failing job is only where it's detected. The same path would serve a stale object to a normal build silently, producing a binary from old source with no error — so we treat this as a correctness issue.
Questions after looking at code:
- The plugin keys purely on the actionID that
cmd/goprovides. For a cache shared across toolchains and build variants, should the key be salted with additional build context (toolchain version, cover mode, flags) — or is fully distinguishing builds consideredcmd/go's responsibility, and this is really acmd/goactionID-completeness issue rather than a plugin one? Getreturns the cached object without verifying its content against the requestedoutputID(the comment defers content-address checking to the toolchain). Would you accept a verify-on-GET (or read-only) mode that treats a hash mismatch as a miss and rebuilds, rather than returning stale bytes? For a shared multi-writer cache that would convert a silent stale-serve into a safe miss.
I can do the fix, if issue is accepted.
- Lenguaje dominante
- Go
- Estrellas
- 81
- Forks
- 21
- 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
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de tailscale/go-cache-plugin
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
tailscale/go-cache-plugin#25 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
tailscale/go-cache-plugin#24 · 1 comentario ·
-
Support a read-only modeAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
tailscale/go-cache-plugin#19 ·
-
GCS supportAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
tailscale/go-cache-plugin#15 · 1 reacción ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
tailscale/go-cache-plugin#13 · 3 comentarios · 2 reacciones ·
Todos los issues de tailscale/go-cache-plugin
Issues similares
-
automation models
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
txn2/mcp-data-platform#1984 ·
Los mantenedores suelen responder en 1 día
-
agentic-workflows
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Fix broken Code of Conduct linksAbiertokind/docs prio/P2
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
agent-substrate/substrate#1986 ·
Los mantenedores suelen responder en 1 día