Skip to content
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

Fix the ConcurrentModificationException for And/Or DocIdSet #12611

Merged

Conversation

Jackie-Jiang
Copy link
Contributor

Fix #12368

When a query is early terminated, some segments might still be executing while the combine operator is collecting execution stats. This can cause ConcurrentModificationException for AndDocIdSet and OrDocIdSet since both methods are accessing the same List, and one is modifying it (introduced in #11200).

This PR fixed issue by keeping the scan based DocIdSets in a separate list

@codecov-commenter
Copy link

codecov-commenter commented Mar 8, 2024

Codecov Report

Attention: Patch coverage is 0% with 43 lines in your changes are missing coverage. Please review.

Project coverage is 0.00%. Comparing base (59551e4) to head (b5acc23).
Report is 101 commits behind head on master.

Files Patch % Lines
...che/pinot/core/operator/docidsets/AndDocIdSet.java 0.00% 22 Missing ⚠️
...ache/pinot/core/operator/docidsets/OrDocIdSet.java 0.00% 21 Missing ⚠️
Additional details and impacted files
@@              Coverage Diff              @@
##             master   #12611       +/-   ##
=============================================
- Coverage     61.75%    0.00%   -61.75%     
+ Complexity      207        6      -201     
=============================================
  Files          2436     2375       -61     
  Lines        133233   130119     -3114     
  Branches      20636    20196      -440     
=============================================
- Hits          82274        6    -82268     
- Misses        44911   130113    +85202     
+ Partials       6048        0     -6048     
Flag Coverage Δ
custom-integration1 <0.01% <0.00%> (-0.01%) ⬇️
integration <0.01% <0.00%> (-0.01%) ⬇️
integration1 <0.01% <0.00%> (-0.01%) ⬇️
integration2 0.00% <0.00%> (ø)
java-11 <0.01% <0.00%> (-61.71%) ⬇️
java-21 0.00% <0.00%> (-61.63%) ⬇️
skip-bytebuffers-false <0.01% <0.00%> (-61.75%) ⬇️
skip-bytebuffers-true 0.00% <0.00%> (-27.73%) ⬇️
temurin <0.01% <0.00%> (-61.75%) ⬇️
unittests ?
unittests1 ?
unittests2 ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Jackie-Jiang Jackie-Jiang merged commit 8b88697 into apache:master Mar 11, 2024
19 checks passed
@Jackie-Jiang Jackie-Jiang deleted the fix_thread_safety_doc_id_set branch March 11, 2024 17:45
@ankitsultana
Copy link
Contributor

@Jackie-Jiang : we are seeing this in our internal 1.1 release cut build as well. We didn't add this to that release?

cc: @vvivekiyer

@Jackie-Jiang
Copy link
Contributor Author

No, seems it is not included..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Flaky test] MultiStageEngineCustomTenantIntegrationTest.testGeneratedQueries()
4 participants