WAL ReadAll() truncates the file even upon transient I/O error
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 65/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- go
- Área
- distributed-systems
Línea de trabajo
Read the WAL's ReadAll() method and the readRecord call shown in the issue. Trace how readRecord reports transient I/O errors versus CRC corruption, then check the WAL tests for coverage of both cases. Done means transient read errors cause the process to fail without truncating the file, while corrupted records retain their intended handling.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
In the WAL's ReadAll() method, we have the following code:
var payloads [][]byte
for bytesToRead > 0 {
payload, bytesRead, err := readRecord(w.file, bytesToRead)
// record was corrupted in wal
if err != nil {
return payloads, w.truncateAt(fileInfo.Size() - bytesToRead)
}
readRecord reads a record and checks its CRC. The readRecord therefore can fail due to two reasons:
- A transient read error
- A corruption of the records inside the file.
The handling in ReadAll doesn't distinguish between the two, and truncates the file anyway.
We therefore need to crash upon a transient read error instead of truncating the file.
- Lenguaje dominante
- Go
- Estrellas
- 22
- Forks
- 4
- Merge medio
- 2 d 4 h
- PR fusionados (30 d)
- 43
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 ava-labs/Simplex
-
Dificultad 3/5 1-2 días Aptitud para principiantes 56/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 1-2 días Aptitud para principiantes 52/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
-
Verification accepts aux info appends after the history is sufficient, changing the approval digestAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
Los mantenedores suelen responder en 1 día
Todos los issues de ava-labs/Simplex
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
blocked-needs-validation bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 78/100
projectcapsule/capsule#2280 ·
Los mantenedores suelen responder en 1 día
-
bug ready-for-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
kerti/balances-v2#801 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
[BUG] AdvancedCronJob validating webhook reports incorrect field paths for concurrencyPolicy and pod templatesPosiblemente ocupada @bhuvan-somisetty la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
openkruise/kruise#2650 ·
Los mantenedores suelen responder en 1 día