[Testing] Test downstream plugins that load SQL classes (alerting, skills)
Maintainer thường phản hồi trong vòng 1 ngày
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 18/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- java
- Lĩnh vực
- testing-qa
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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
- Ngôn ngữ chính
- Java
- Star
- 175
- Fork
- 236
- Merge trung bình
- 3 ngày 36 phút
- Pull request đã merge (30 ngày)
- 41
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của opensearch-project/sql
-
[BUG] PromQL queries fail with InvalidTypeIdException when metric has a label named "type"Có thể đã có người làm @nagendramohan đã nhận 86 ngày trước. Đang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
opensearch-project/sql#5684 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[DOC] Calcite settings documentation missing examplesCó thể đã có người làm @AzazelSensei đã nhận 43 ngày trước. Đang mởdocumentation PPL
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
opensearch-project/sql#4806 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[BUG] Analytics routing does not resolve aliases and wildcard index expressionsCó thể đã có người làm @KarstenSchnitter đã nhận 7 ngày trước. Đang mởanalytic-engine bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
opensearch-project/sql#5916 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug good first issue
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 64/100
opensearch-project/sql#5911 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug PPL
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 48/100
opensearch-project/sql#5904 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của opensearch-project/sql
Issue tương tự
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Some walls missing from researchĐang mởbug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
ahmedmmordi/store-app#8 ·
-
jhipster heroku fails on heroku git:remote when reusing an existing app outside a git repositoryĐang mởarea: triage theme: undefined
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
jhipster/generator-jhipster#36018 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
component/zeebe kind/feature scope/broker
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày