[Bug] Fix batch finalization for existing temp uploads - #3
Draft
cursor[bot] wants to merge 1 commit into
Draft
Conversation
Co-authored-by: Varun Gupta <varungup90@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request Description
Fixes a batch data-loss bug where jobs that already had multipart temp output IDs skipped
finalize_job_output_data()in the schedulerexecute_job()path. Those jobs could be marked finalized without completing multipart uploads or assembling final output/error files.Bug and impact:
temp_output_file_idandtemp_error_file_idalready set.execute_job()used that as a reason to skip both preparation and final aggregation.FINALIZING, it could be markedFINALIZEDwhile final output objects remained incomplete/missing, causing broken downloads and lost batch results.Root cause:
has_temp_filesguard was used for two different lifecycle steps: skip output preparation, and skip output finalization.Fix:
finalize_job_output_data()when a job reachesFINALIZING.IN_PROGRESSjob with existing temp IDs to ensure preparation is not rerun but finalization is invoked before marking done.Validation performed:
PYTHONPATH=/workspace/python/aibrix python3 -m pytest tests/batch/test_driver.py::test_execute_job_finalizes_job_with_existing_temp_files tests/batch/test_driver.py::test_batch_driver_resumingPYTHONPATH=/workspace/python/aibrix python3 -m pytest tests/batch/test_driver.pyRelated Issues
Resolves: #
Important: Before submitting, please complete the description above and review the checklist below.
Contribution Guidelines (Expand for Details)
We appreciate your contribution to aibrix! To ensure a smooth review process and maintain high code quality, please adhere to the following guidelines:
Pull Request Title Format
Your PR title should start with one of these prefixes to indicate the nature of the change:
[Bug]: Corrections to existing functionality[CI]: Changes to build process or CI pipeline[Docs]: Updates or additions to documentation[API]: Modifications to aibrix's API or interface[CLI]: Changes or additions to the Command Line Interface[Misc]: For changes not covered above (use sparingly)Note: For changes spanning multiple categories, use multiple prefixes in order of importance.
Submission Checklist
By submitting this PR, you confirm that you've read these guidelines and your changes align with the project's contribution standards.