Fixed an edge case for incremental run failures on cloud file-systems #1185
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.
Description of what I changed
The bug was discovered as part of this report (see item 4). The actual bug is not what is reported there but for whatever [other] reasons, an incremental-run has failed. That failure has blocked the following incremental-runs (which are supposed to repeat the old failed one). The reason this edge-case fails on cloud files-systems (e.g., GCS, S3), is because there is not really a concept of "directory" there. We have buckets and files in them. As a consequence of this bug-fix, the
incremental_run
directories now have a timestamp suffix as well.E2E test
TESTED:
Beside updating unit-tests, I rant the controller locally with
dwhRootPrefix
set to as3://...
path; then created an artificial failure by creating anerror.log
in an incremental run (and removing some other files). I reran the incremental-build and verified that the controller can recover from that situation (previously it could not).Checklist: I completed these to help reviewers :)
I have read and will follow the review process.
I am familiar with Google Style Guides for the language I have coded in.
No? Please take some time and review Java and Python style guides.
My IDE is configured to follow the Google code styles.
No? Unsure? -> configure your IDE.
I have added tests to cover my changes. (If you refactored existing code that was well tested you do not have to add tests)
I ran
mvn clean package
right before creating this pull request and added all formatting changes to my commit.All new and existing tests passed.
My pull request is based on the latest changes of the master branch.
No? Unsure? -> execute command
git pull --rebase upstream master