Siyao Meng created HDDS-17111:
---------------------------------
Summary: OFS and O3FS getFileBlockLocations ignore start and len
Key: HDDS-17111
URL: https://issues.apache.org/jira/browse/HDDS-17111
Project: Apache Ozone
Issue Type: Bug
Reporter: Siyao Meng
{{BasicOzoneFileSystem#getFileBlockLocations(FileStatus, long, long)}} and the
same method in {{BasicRootedOzoneFileSystem}} return every block of the file
when given a {{LocatedFileStatus}}, whatever {{start}} and {{len}} are. HDFS,
and the default {{FileSystem}} implementation, return only the blocks that
overlap the requested range.
Callers that ask about part of a file see blocks outside that range. For
example, HBase computes block locality for a split reference file from the half
of the HFile it covers, so it overstates locality on Ozone. Split planning in
MapReduce or Spark can be affected the same way.
Proposed fix: return only the blocks that overlap {{[start, start + len)}}, or
the block containing {{start}} when {{len}} is 0, matching HDFS. Reject a
negative {{start}} or {{len}} with {{IllegalArgumentException}}, as
{{FileSystem}} does.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]