Companion ACKs a direct message that it then drops when the offline queue is full
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- c
- Área
- backend, networking
Línea de trabajo
Start with addToOfflineQueue() in examples/companion_radio/MyMesh.cpp (lines 224–246) and the ACK path in BaseChatMesh::onPeerDataRecv() in src/helpers/BaseChatMesh.cpp (around lines 239–254). Trace how onMessageRecv() handles direct messages when the queue is full and how that result controls ACKs. Done when a dropped message is not acknowledged, with queue eviction behavior clarified if implementing the broader suggestion.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
When the companion's offline queue is full (OFFLINE_QUEUE_SIZE, default 16) and holds no channel messages, addToOfflineQueue() drops the incoming direct message (examples/companion_radio/MyMesh.cpp, dev, lines 224-246). BaseChatMesh::onPeerDataRecv() still sends the ACK afterwards (src/helpers/BaseChatMesh.cpp, around lines 239-254), because onMessageRecv() returns void.
Result: the sender sees the message as delivered, but it never reaches the app. This happens when the phone is disconnected for a while and more than 16 DMs arrive.
Suggested fix, in increasing scope:
- Let
onMessageRecv()return whether the message was stored, and only ACK when it was. The sender then retries later, as it would for an unreachable node. - When the queue is full of DMs, evict other non-DM frames first, and only refuse (no ACK) as a last resort.
- Optionally, keep the offline queue in flash so a reboot or empty battery does not lose ACKed messages.
Related: #1834 (failed delivery shown but message received) is the inverse case; this one reports success while the message is lost.
- Lenguaje dominante
- C
- Estrellas
- 3.9k
- Forks
- 1.5k
- Merge medio
- 1 d 3 h
- PR fusionados (30 d)
- 24
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 meshcore-dev/MeshCore
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 63/100
meshcore-dev/MeshCore#3622 ·
Los mantenedores suelen responder en 1 día
-
[Feature Request] Set Australia (Mid) Preset to automatically enable 2 byte default path hash sizeAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
meshcore-dev/MeshCore#3571 · 5 reacciones ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
meshcore-dev/MeshCore#3567 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
RTC_RX8130CE writes and reads the one-hot WEEK register as a numberPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
meshcore-dev/MeshCore#3549 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
meshcore-dev/MeshCore#3513 ·
Los mantenedores suelen responder en 1 día
Todos los issues de meshcore-dev/MeshCore
Issues similares
-
TLS: a stale OpenSSL error makes non-blocking reads fail with "Resource temporarily unavailable"Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
bigtreetech/BIGTREETECH-TouchScreenFirmware#3056 ·
Los mantenedores suelen responder en 1 día
-
Allow pillow 13Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
[pico][astrocade] emu/apply.sh edits src/mame/midway/astrohome.cpp, which current MAME has in bally/Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
FujiNetWIFI/fujinet-firmware#2120 ·
Los mantenedores suelen responder en 1 día