-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] org.opensearch.search.nested.SimpleNestedIT.testExplain is flaky #11413
Comments
Thanks for filing this issue |
Just at a glance this looks related to ingesting dummy docs for the concurrent search path. The expected score is still correct. |
I am not able to reproduce this with the above seed, also tried to run it for 100 times, but still not able to reproduce it. |
I am able now to reproduce this with seed=1D20738151FB4EBD |
The explain itself is coming from Lucene: https://github.com/apache/lucene/blob/a6f70ad2bb0b682eb65feb522358ee6d16cad766/lucene/join/src/java/org/apache/lucene/search/join/ToParentBlockJoinQuery.java#L432-L440 The difference in output seems to be coming from different start/end docs, which makes sense since we have deleted docs in our segments for the concurrent search path. It seems to me we can just fix the test itself to accommodate. |
Here's some info on the docIds in lucene:
The test fails on the validation of range of the docIds in the assertion, the range changes as with indexRandomForConcurrentSearch function there are several bogus documents ingested and deleted which could trigger background merges and cause the range of the docIds matched with the search query to change. |
@neetikasinghal Seems like the docId in the output of explain is the lucene internal docId and not the docId set in _id field by OpenSearch. In that case, I think it would be useful to have a tests with these bogus docs ingested once and then validating that output of explain API in concurrent and non-concurrent case is same on same index. We can extract it to a separate test class if needed. |
@sohami makes sense. The range of the docs should not vary across concurrent and non-concurrent case. However, in order to do this, we need to pull the test out into a separate class and turn off the parameterization as indexRandomForMultipleSlices function could lead to having different range across different test run and will not be consistent. |
Describe the bug
The test case
org.opensearch.search.nested.SimpleNestedIT.testExplain {p0={"search.concurrent_segment_search.enabled":"true"}}
is flakyTo Reproduce
Expected behavior
The test must always pass
Plugins
Standard
Screenshots
If applicable, add screenshots to help explain your problem.
Host/Environment (please complete the following information):
Additional context
The text was updated successfully, but these errors were encountered: