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