You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@orc.apache.org by GitBox <gi...@apache.org> on 2021/10/10 16:09:34 UTC
[GitHub] [orc] guiyanakuang commented on a change in pull request #924: ORC-1014. Add details when we get IOException from the file system
guiyanakuang commented on a change in pull request #924:
URL: https://github.com/apache/orc/pull/924#discussion_r725661709
##########
File path: java/core/src/java/org/apache/orc/impl/RecordReaderUtils.java
##########
@@ -414,7 +414,15 @@ static void readRanges(FSDataInputStream file,
long offset = first.getOffset();
int readSize = (int) (computeEnd(first, last) - offset);
byte[] buffer = new byte[readSize];
- file.readFully(offset, buffer, 0, buffer.length);
+ try {
+ file.readFully(offset, buffer, 0, buffer.length);
+ } catch(IOException e) {
+ throw new IOException(String.format("Failed while reading %s %d:%d",
+ file,
Review comment:
https://github.com/apache/orc/blob/93b7aa67830104d6bd7fc55399947ee938549f55/java/core/src/java/org/apache/orc/impl/RecordReaderUtils.java#L99-L104
Hey guys @omalley @dongjoon-hyun @autumnust
It looks better to refer to the `readFileData` on the exception catch, because here we can get the path variable directly
Call chain
`readFileData`---->`readDiskRanges`----->`readRanges`
`readFileData`---->`readDiskRanges`----->`zeroCopyReadRanges`
And the parallel `zeroCopyReadRanges` method allows us to catch exceptions and print information about them.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscribe@orc.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org