[HUDI-8794] Make sure the log file has been closed and then remove the shutdown hook #12542
+5
−6
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.
In our actual production, we encountered an exception because the log file was not closed and then subsequent tasks to read the file.
Consider the following scenario: A speculative task has finished writing all the data, but the original task has been successfully executed, resulting in the need to kill the task. In the exit logic, we find that the code will remove the shutdown hook and then execute the close. If a jvm exits between the shutdown removal and the close completion, the log file will not be closed properly, resulting in a downstream read error.
org.apache.hudi.common.table.log.HoodieLogFormatWriter#close
Change Logs
Describe context and summary for this change. Highlight if any code was copied.
Impact
none
Describe any public API or user-facing feature change or any performance impact.
Risk level (write none, low medium or high below)
low
If medium or high, explain what verification was done to mitigate the risks.
Documentation Update
none
Describe any necessary documentation update if there is any new feature, config, or user-facing change. If not, put "none".
ticket number here and follow the instruction to make
changes to the website.
Contributor's checklist