bugfix: read/write fd dropped unexpectedly. #184
Merged
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.
read/write function invokes
which takes ownership of
data
and it's innerFile
, after the function call returns, File will be dropped and cannot be read/write later anymore, causing a failed read/write.This bug is triggered when
no_open
config option is set, in this case,self.get_data
opens a new file and it's dropped immediately aftercheck_fd_flags
.The bug can be solved by create a new clone of data by
data.clone()
, the original data(and inner File) can be kept in whole lifetime of read/write function.