[Testing] Test downstream plugins that load SQL classes (alerting, skills)
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 18/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- java
- Área
- testing-qa
Línea de trabajo
Start with ThinJarClassesTest and the thin-jar build for the SQL plugin, then read PPLQueryAction, TransportPPLQueryRequest, TransportPPLQueryResponse and PPLQueryTask to see what consumers load. The work is a CI task that installs alerting with a rebuilt thin jar and runs a PPL monitor, plus an isolated classloader check that fails on LinkageError. Done means both checks run in CI and would have caught the NoClassDefFoundError in #5923.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
Our unit and integration tests check that SQL/PPL works on its own. They don't check the plugins that load SQL classes directly, so a change can pass all of our CI and still break them.
That happened in 3.10.0: #5910 added an opensearch-module interface to PPLQueryTask. All SQL CI passed, but every PPL alerting monitor crashed the node with NoClassDefFoundError (#5923, fixed in #5924). It was found in Observability stack testing, near code freeze.
Why our tests miss this
- Alerting and skills call
PPLQueryActionusing their ownopensearch-sql-thinjar. They build it from our plugin classes plus thecore,ppl, andprotocoljars, and it does not include theopensearchmodule. Their classloader therefore sees only part of our code. - Our ITs run with the whole SQL plugin on one classpath, so a class that is fine for us but broken for them always passes.
- #5924 added
ThinJarClassesTest. It only checks the four classes we know alerting loads, by reflection, so it would miss a new class or a new consumer.
Proposal
- Consumer smoke IT. Add a CI task that installs alerting (and skills, if practical) with its thin jar rebuilt from the current SQL build, then runs a PPL monitor create, an
_execute, and a scheduled run, and checks that the node stays up. This would have caught #5923 before merge. - Isolated classloader check. Build a thin jar the way alerting does. Load the consumer-facing classes in a classloader that holds only that jar plus
core/ppl/protocoland OpenSearch, and fail on anyLinkageError. This is stricter than the reflection check inThinJarClassesTest. - Document the consumer surface. List the classes other plugins load:
PPLQueryAction,TransportPPLQueryRequest,TransportPPLQueryResponse,PPLQueryTask, and any classes skills uses. Treat them as API, and note in the developer docs that they must not depend on theopensearchmodule. - Find all consumers. Check which other plugins (alerting, skills, query-insights, others) bundle SQL classes, so the tests above cover all of them.
Related
- #5923 / #5924: the regression and the fix
- opensearch-project/alerting#2322: alerting CI failed on the same regression
- Lenguaje dominante
- Java
- Estrellas
- 175
- Forks
- 236
- Merge medio
- 2 d 19 h
- PR fusionados (30 d)
- 40
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 opensearch-project/sql
-
[BUG] PromQL queries fail with InvalidTypeIdException when metric has a label named "type"Posiblemente ocupada @nagendramohan la tomó hace 89 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
opensearch-project/sql#5684 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
[DOC] Calcite settings documentation missing examplesPosiblemente ocupada @AzazelSensei la tomó hace 46 días. Abiertodocumentation PPL
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
opensearch-project/sql#4806 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug untriaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 48/100
opensearch-project/sql#5928 ·
Los mantenedores suelen responder en 1 día
-
[BUG] Analytics routing does not resolve aliases and wildcard index expressionsPosiblemente ocupada @KarstenSchnitter la tomó hace 9 días. Abiertoanalytic-engine bug
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
opensearch-project/sql#5916 ·
Los mantenedores suelen responder en 1 día
-
bug PPL
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
opensearch-project/sql#5904 ·
Los mantenedores suelen responder en 1 día
Todos los issues de opensearch-project/sql
Issues similares
-
Document and enforce pull request review guidelinesPosiblemente ocupada @dashorst la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
`Time.at(t, in: nil)` returns UTC instead of the local time (or the time zone of `t`), unlike CRubyAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
hermes-queue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
chrisalunlloyd2-sudo/mindpalace#349 ·
Los mantenedores suelen responder en 1 día
-
Retry-After parser accepts invalid delay-seconds valuesPosiblemente ocupada @Dhruvraj-Rana la tomó hoy. AbiertoBug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
open-telemetry/opentelemetry-java#9018 ·
Los mantenedores suelen responder en 2 días
-
dropwizard-testing: DAOTest.inTransaction leaves the transaction open when an Error is thrownAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
dropwizard/dropwizard#11410 ·
Los mantenedores suelen responder en 1 día