The patch at
HDFS-11160 ensures BlockSender reads the correct version of metafile when there are concurrent writers.
However, the implementation is not optimal, because it must always read the last partial chunk checksum from disk while holding FsDatasetImpl lock for every reader. It is possible to optimize this by keeping an up-to-date version of last partial checksum in-memory and reduce disk access.
I am separating the optimization into a new jira, because maintaining the state of in-memory checksum requires a lot more work.