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

Remove segments with empty download url in UpsertCompactionTask #12320

Merged
merged 2 commits into from
Jan 31, 2024

Conversation

tibrewalpratik17
Copy link
Contributor

@tibrewalpratik17 tibrewalpratik17 commented Jan 25, 2024

bugfix

During UpsertCompactionTask generation, if segments are missing downloadUrl in ZK, even those are processed and pushed to task-execution phase. While downloading the file from deep-store, it throws an NPE and errors out.

Removing these segments in the task-generation phase itself so that other relevant segments can be processed until maxTasks is reached.

@codecov-commenter
Copy link

codecov-commenter commented Jan 25, 2024

Codecov Report

Attention: 3 lines in your changes are missing coverage. Please review.

Comparison is base (6cc1915) 61.65% compared to head (bde29a6) 34.77%.
Report is 2 commits behind head on master.

Files Patch % Lines
...psertcompaction/UpsertCompactionTaskGenerator.java 0.00% 3 Missing ⚠️
Additional details and impacted files
@@              Coverage Diff              @@
##             master   #12320       +/-   ##
=============================================
- Coverage     61.65%   34.77%   -26.88%     
+ Complexity     1152      951      -201     
=============================================
  Files          2421     2345       -76     
  Lines        131872   128136     -3736     
  Branches      20346    19789      -557     
=============================================
- Hits          81308    44563    -36745     
- Misses        44600    80384    +35784     
+ Partials       5964     3189     -2775     
Flag Coverage Δ
custom-integration1 <0.01% <0.00%> (ø)
integration <0.01% <0.00%> (ø)
integration1 <0.01% <0.00%> (ø)
integration2 0.00% <0.00%> (ø)
java-11 <0.01% <0.00%> (-61.60%) ⬇️
java-21 34.77% <0.00%> (-26.76%) ⬇️
skip-bytebuffers-false 34.76% <0.00%> (-26.88%) ⬇️
skip-bytebuffers-true 34.75% <0.00%> (-26.74%) ⬇️
temurin 34.77% <0.00%> (-26.88%) ⬇️
unittests 46.59% <ø> (-15.06%) ⬇️
unittests1 46.59% <ø> (-0.19%) ⬇️
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.

Copy link
Contributor

@walterddr walterddr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why would a download url be empty for a minion task?

@tibrewalpratik17
Copy link
Contributor Author

why would a download url be empty for a minion task?

There are scenarios when downloadURL can be empty (when deepstore upload timed out during segment commit or something). There are ways to enable retries on them but during that period the ZK config has downloadURL has empty.

Now if the minion tasks runs during this period, the downloadURL is fetched as null and passed on to task-execution phase where it throws NPE. This patch doesn't allow these segments to go to the task-execution phase itself and stops them in task-generation phase.

@tibrewalpratik17 tibrewalpratik17 changed the title Remove segments with empty download url in minion-tasks Remove segments with empty download url in UpsertCompactionTask Jan 30, 2024
Copy link
Contributor

@ankitsultana ankitsultana left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm. Ideally we could also emit a metric but I am okay without it as well.

@tibrewalpratik17
Copy link
Contributor Author

@walterddr can you help approve / merge this PR?

@walterddr walterddr merged commit 8988b75 into apache:master Jan 31, 2024
19 checks passed
suyashpatel98 pushed a commit to suyashpatel98/pinot that referenced this pull request Feb 28, 2024
…he#12320)

* Remove segments with empty download url in minion-tasks
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.

4 participants