Cron: malformed tenant annotation can stop scheduled actions of other tenants
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 20/100
Línea de trabajo
The proposed fix is in openserverless-operator for branch 0.9.0, and PR #144 is already open. Read that pull request and its regression test for two tenants with valid recurring and one-shot actions; done means malformed annotations are rejected and do not prevent other scheduled actions from running.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
The OpenServerless 0.9.0 Cron scheduler processes scheduled actions from all namespaces in one batch. An authenticated tenant can persist a malformed cron annotation on an action in its own namespace. The scheduler passes that value to the cron parser without checking its type; an uncaught exception can stop the batch before later tenants' actions are processed. The annotation persists, so subsequent scheduled runs can be affected as well.
Impact: cross-tenant availability of scheduled actions when the Cron component is enabled. This requires a normal tenant credential. We found no anonymous entry point, cross-tenant invocation, or credential disclosure in this path.
Proposed change in openserverless-operator for branch 0.9.0: reject non-string, empty, and excessively long cron expressions before parsing; isolate errors while processing each action so one malformed action cannot stop the remaining batch; add a regression test covering two tenants and valid recurring/one-shot actions.
Validation: the regression reproduced the failure before the fix in a local harness and passed afterward with the pinned croniter 1.4.1. In an isolated K3s lab, Alpha and Beta each produced two fresh scheduled heartbeats while a malformed Alpha action existed. A scheduler job logged the malformed Alpha annotation before successfully dispatching Beta's heartbeat action. The malformed action was removed after the test, and the baseline CronJob image was restored.
Proposed fix: https://github.com/apache/openserverless-operator/pull/144 (target branch 0.9.0).
- Lenguaje dominante
- Python
- Estrellas
- 577
- Forks
- 29
- Merge medio
- 3 d 17 h
- PR fusionados (30 d)
- 4
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/openserverless
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
apache/openserverless#269 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
apache/openserverless#267 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
apache/openserverless#277 ·
-
Streamer 0.9.0 hardening: authenticated callbacks and backward-incompatible client migrationAbierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
apache/openserverless#274 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 8/100
apache/openserverless#273 · 2 comentarios ·
Todos los issues de apache/openserverless
Issues similares
-
Validate non-divisible effective batch sizes in the Unsloth LoRA backendPosiblemente ocupada @debesh-biswas la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
`rx.Model` event arguments emit `PydanticDeprecatedSince20` once per payload keyPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
reflex-dev/reflex#7634 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
documentation
Dificultad 1/5 1-3 horas Aptitud para principiantes 82/100
topoteretes/cognee#6239 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ranaroussi/yfinance#3009 ·
Los mantenedores suelen responder en 1 día
-
Test discovery aborts on GPU builds without cuStateVec: check_cuStateVec expects a failed result but set_config() now raises RuntimeErrorPosiblemente ocupada @dmeliksetian la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Qiskit/qiskit-aer#2495 ·
Los mantenedores suelen responder en 1 día