server: Discovery store is only persisted on clean shutdown
Los mantenedores suelen responder en 4 días
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
Línea de trabajo
Lee server/app/services/run_discovery.py y la implementación de DiscoveryStore.to_file(), y luego inspecciona post_all_asset_links_by_id y delete_all_asset_links_by_id para ver cómo actualizan el almacén en memoria. Comprueba cómo el modo persistente configura storage_path; el trabajo estará terminado cuando un POST o DELETE correcto siga estando disponible después de una detención inesperada del servicio. La opción del README que solo implica documentación es una alternativa si no se elige la persistencia en el momento de escribir.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The discovery service writes its store to storage_path only in an
atexit hook:
The write handlers post_all_asset_links_by_id and
delete_all_asset_links_by_id only change the in-memory dicts.
The discovery_standalone README describes a "Persistent Mode" but
does not say that changes are written only at shutdown:
Expected behavior: In persistent mode, a successful POST or DELETE
on /lookup/shells/{aasIdentifier} survives a crash of the service.
Actual behavior: Changes reach the disk only on a clean shutdown.
If the process is killed (OOM, docker kill, host crash, uWSGI worker
crash), all asset links registered since startup are lost.
Environment: develop @ 2773ac06, image built from
server/docker/discovery/Dockerfile with storage_path set.
Options:
- Persist on every write: call
DiscoveryStore.to_file()at the end
of both write handlers and drop theatexithook.to_file()
already writes a temp file and usesos.replace(), so the write is
atomic. - Keep the current behavior and document it: state in the README
that changes are saved only on a clean shutdown and that a crash
loses everything since the last start.
Option 1 is a small change and makes "persistent mode" mean what users
expect, so I would prefer it.
- Lenguaje dominante
- Python
- Estrellas
- 106
- Forks
- 59
- Merge medio
- 4 d 1 h
- PR fusionados (30 d)
- 3
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin 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 eclipse-basyx/basyx-python-sdk
-
server: XML responses contain `cursor="None"` on the last pagePosiblemente ocupada @qiaobochi040726-source la tomó hace 2 días. Abiertobug good-first-issue server
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
eclipse-basyx/basyx-python-sdk#673 ·
Los mantenedores suelen responder en 4 días
-
adapter.aasx: Failsafe writer adds duplicate parts for conflicting filesPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug good-first-issue sdk
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
eclipse-basyx/basyx-python-sdk#671 ·
Los mantenedores suelen responder en 4 días
-
enhancement good-first-issue server
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
eclipse-basyx/basyx-python-sdk#670 ·
Los mantenedores suelen responder en 4 días
-
bug good-first-issue sdk
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
eclipse-basyx/basyx-python-sdk#665 ·
Los mantenedores suelen responder en 4 días
-
README CI badge is brokenPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
eclipse-basyx/basyx-python-sdk#656 ·
Los mantenedores suelen responder en 4 días
Todos los issues de eclipse-basyx/basyx-python-sdk
Issues similares
-
The changelog workflow excludes otelbot but not dependabot, so every Dependabot pull request fails the changelog checkPosiblemente ocupada @ocelotl la tomó hoy. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100
open-telemetry/opentelemetry-python#5825 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
cuga-project/cuga-agent#1020 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
microsoft/playwright#43640 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
stac-utils/stac-fastapi-elasticsearch-opensearch#965 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día