Outdated documentation of shared memory API usage
Los mantenedores suelen responder en 2 días
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
- Tipo de issue
- Documentación
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- cpp
- Área
- documentation
Línea de trabajo
Empieza por score/datarouter/doc/design/shm_apis.md y compara cada afirmación señalada con la implementación actual, incluidos reader_factory_impl.cpp y el directorio wait_free_producer_queue. Comprueba cómo crea el modo dinámico el archivo de memoria compartida, qué flags de apertura se usan, cómo gestionan los escritores un búfer lleno y qué ocurre cuando fallan los reintentos de conexión. La tarea estará terminada cuando la documentación describa con precisión el diseño lock-free actual y el comportamiento de conexión.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Description
score/datarouter/doc/design/shm_apis.md contains several statements that do not match the current codebase:
Incorrect statements:
- Lines 22-24 describe a POSIX mutex in shared memory protecting read/write pointer consistency. The implementation uses lock-free atomics with no mutex anywhere in the shared memory structures or the wait_free_producer_queue directory.
- Line 22 states the writer advances the reader pointer when the buffer is full. In practice, the writer drops the message.
- Line 20 states "the reader can (and does) modify the shared memory." The reader maps with PROT_READ only (reader_factory_impl.cpp) and holds const SharedData&. All shared memory mutations are performed by the writer process.
Inaccurate or incomplete statements:
- Line 20 only mentions open() for shared memory creation. In dynamic mode, mkstemps() creates the file.
- Line 20 omits the O_EXCL and O_CLOEXEC flags used alongside O_RDWR.
- Line 45 states reconnection is handled transparently, without noting that prolonged failure triggers permanent client shutdown.
- Line 56 states DataRouter "waits for the reconnect." There is no explicit wait — the session is destroyed and the server continues listening; a reconnecting client creates a new session.
The documentation appears to describe a predecessor design (mutex-based circular buffer) that has since been replaced by the current lock-free alternating double-buffer design.
Problem notifications
No functional impact.
Analysis results
Documentation will be updated in subsequent PR.
Solution
See linked PR.
Error Occurrence Rate
None
How to reproduce
No response
Supporting Information
No response
Classification
Minor
First Affected Release
not released (main)
Last Affected Release
not released (main)
Expected Fixed Release
before release (main)
Category
- Safety Relevant
- Security Relevant
- Lenguaje dominante
- C++
- Estrellas
- 2
- Forks
- 32
- Merge medio
- 4 d 7 h
- PR fusionados (30 d)
- 13
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin 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 eclipse-score/logging
-
Update to Docs-As-Code 8.3.0Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
eclipse-score/logging#339 ·
Los mantenedores suelen responder en 2 días
-
wp:architecture
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
eclipse-score/logging#314 ·
Los mantenedores suelen responder en 2 días
-
wp:architecture
Dificultad 2/5 Medio día Aptitud para principiantes 68/100
eclipse-score/logging#312 ·
Los mantenedores suelen responder en 2 días
-
wp:architecture
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
eclipse-score/logging#310 ·
Los mantenedores suelen responder en 2 días
-
bb:feature-logging ft:LOG wp:safety-mgmt
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
eclipse-score/logging#202 ·
Los mantenedores suelen responder en 2 días
Todos los issues de eclipse-score/logging
Issues similares
-
[Bug]: iOS textarea wraps text mid-word because LynxUIBaseInput hardcodes NSLineBreakByCharWrappingAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
lynx-family/lynx#10455 ·
Los mantenedores suelen responder en 1 día
-
A-tools P-low S-blocked task
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Rifle-variant weapon offsets are saved under the pistol's name [FRIK-093]Posiblemente ocupada @rollingrock la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
rollingrock/Fallout-4-VR-Body#182 ·
-
[Ulduar] Kologarn – Focused Eyebeam emote is shown to the whole raid instead of only the targetAbierto80 Confirmed Instance - Raid - Northrend
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
azerothcore/azerothcore-wotlk#28277 ·
Los mantenedores suelen responder en 1 día
-
(S1 - Need confirmation)
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
CleverRaven/Cataclysm-DDA#89304 ·
Los mantenedores suelen responder en 1 día