[BanyanDB] Stream write callback reports success for events it did not store
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- go
- Área
- backend, observability
Línea de trabajo
Start with banyand/stream/write_standalone.go, then read the error forwarding paths in banyand/queue/local.go and banyand/queue/sub/helpers.go and how batch statuses are applied in banyand/liaison/grpc/stream.go. Check the corresponding callbacks in banyand/measure and banyand/trace. Done means failures before any event is stored reach the caller, while partial and index-write failures do not cause stored events to be retried as failures.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
writeCallback.Rev (banyand/stream/write_standalone.go) logs each failed event and continues, and always returns an empty response. The caller gets STATUS_SUCCEED for elements that were not stored.
For example, for a missing group, handle fails in prepareElementsInGroup (cannot load tsdb for group). Rev logs cannot handle write event and returns no error.
Observed
With native self-stored logs (apache/skywalking-banyandb#1419) on a standalone node, a forced delete of _monitoring_log lost 3 events. native_log_written_total rose for them, and every native_log_dropped_total reason stayed 0.
Notes for a fix
- The error reply path already exists:
localBatchPublisher.Close(banyand/queue/local.go) and the data-node sub server (banyand/queue/sub/helpers.go) forward a*common.Error, asCheckHealthdoes for disk-full. - The liaison applies one status to every message it sent to a node in a batch (
banyand/liaison/grpc/stream.go). Reporting an error on a partial failure would mark stored elements as failed, and a retrying client would store them twice. Report an error only when nothing in the batch was stored, or report per element. - Index-write failures happen after the elements are stored, so they should stay logged only.
banyand/measureandbanyand/traceuse the same pattern.
Effect on #1419
#1419 does not change this callback. Until it is fixed, events lost while the log destination is missing are counted as written, so a test cannot observe that loss.
- Lenguaje dominante
- Java
- Estrellas
- 25k
- Forks
- 6.6k
- Merge medio
- 16 h 55 min
- PR fusionados (30 d)
- 31
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
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 apache/skywalking
-
[BanyanDB] Flaky test: TestExportRelay_TwoRelaysShareOneRatePosiblemente ocupada @hanahmily la tomó hoy. Abiertodatabase test
Dificultad 3/5 1-2 días Aptitud para principiantes 66/100
apache/skywalking#14175 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Bug] Trace profiling segment list becomes empty after the task finishes, while still inside the query windowPosiblemente ocupada @hanahmily la tomó hace 2 días. Abiertobug database
apache/skywalking#14172 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
[Bug] BanyanDB trace block metadata format changed in 0.11 without a file format version bumpPosiblemente ocupada @hanahmily la tomó hace 3 días. Abiertobug database
apache/skywalking#14169 · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
chore CLI database
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
apache/skywalking#14168 ·
Los mantenedores suelen responder en 1 día
-
[Bug] BanyanDB stream scans run out of query memory even with a small limitPosiblemente ocupada @hanahmily la tomó hace 6 días. Abiertobug database
apache/skywalking#14165 · 3 comentarios · 2 asignados ·
Los mantenedores suelen responder en 1 día
Todos los issues de apache/skywalking
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
oracle/graalvm-reachability-metadata#11472 ·
Los mantenedores suelen responder en 1 día
-
OkHttp versions 5.4.0+ no longer include baseline-prof.txtPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 83/100
lysine-dev/okhttp#9828 ·
Los mantenedores suelen responder en 1 día
-
status: waiting-for-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
spring-projects/spring-ai#7269 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 89/100
objectionary/hone-maven-plugin#1353 ·
Los mantenedores suelen responder en 9 días
-
ClassNotFoundException: io.netty.channel.kqueue.KQueueEventLoop stack trace printed during native build on main (Netty 4.2 removed the class)Posiblemente ocupada @gastaldi la tomó hoy. Abiertoarea/netty kind/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
quarkusio/quarkus#57939 · 1 comentario ·
Los mantenedores suelen responder en 1 día