FrankYang0529 opened a new pull request, #15586:
URL: https://github.com/apache/kafka/pull/15586

   When an exception is thrown in kafka-delete-records, it propagates through 
`main` to the JVM, producing the following message:
   ```
   bin/kafka-delete-records.sh --bootstrap-server localhost:9092 
--offset-json-file /tmp/does-not-exist
   Exception in thread "main" java.io.IOException: Unable to read file 
/tmp/does-not-exist
        at org.apache.kafka.common.utils.Utils.readFileAsString(Utils.java:787)
        at 
org.apache.kafka.tools.DeleteRecordsCommand.execute(DeleteRecordsCommand.java:105)
        at 
org.apache.kafka.tools.DeleteRecordsCommand.main(DeleteRecordsCommand.java:64)
   Caused by: java.nio.file.NoSuchFileException: /tmp/does-not-exist
        at 
java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
        at 
java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
        at 
java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at 
java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:218)
        at java.base/java.nio.file.Files.newByteChannel(Files.java:380)
        at java.base/java.nio.file.Files.newByteChannel(Files.java:432)
        at java.base/java.nio.file.Files.readAllBytes(Files.java:3288)
        at org.apache.kafka.common.utils.Utils.readFileAsString(Utils.java:784)
        ... 2 more
   ```
   
   This is in contrast to the error handling used in other tools, such as the 
kafka-log-dirs:
   
   ```
   bin/kafka-log-dirs.sh --bootstrap-server localhost:9092 --describe 
--command-config /tmp/does-not-exist
   /tmp/does-not-exist
   java.nio.file.NoSuchFileException: /tmp/does-not-exist
        at 
java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
        at 
java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
        at 
java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at 
java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:218)
        at java.base/java.nio.file.Files.newByteChannel(Files.java:380)
        at java.base/java.nio.file.Files.newByteChannel(Files.java:432)
        at 
java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:422)
        at java.base/java.nio.file.Files.newInputStream(Files.java:160)
        at org.apache.kafka.common.utils.Utils.loadProps(Utils.java:686)
        at org.apache.kafka.common.utils.Utils.loadProps(Utils.java:673)
        at 
org.apache.kafka.tools.LogDirsCommand.createAdminClient(LogDirsCommand.java:149)
        at org.apache.kafka.tools.LogDirsCommand.execute(LogDirsCommand.java:68)
        at 
org.apache.kafka.tools.LogDirsCommand.mainNoExit(LogDirsCommand.java:54)
        at org.apache.kafka.tools.LogDirsCommand.main(LogDirsCommand.java:49)
   ```
   
   After the fix, the error from kafka-delete-records will be like:
   
   ```
   Unable to read file /tmp/does-not-exist
   java.io.IOException: Unable to read file /tmp/does-not-exist
        at org.apache.kafka.common.utils.Utils.readFileAsString(Utils.java:787)
        at 
org.apache.kafka.tools.DeleteRecordsCommand.execute(DeleteRecordsCommand.java:117)
        at 
org.apache.kafka.tools.DeleteRecordsCommand.mainNoExit(DeleteRecordsCommand.java:70)
        at 
org.apache.kafka.tools.DeleteRecordsCommand.main(DeleteRecordsCommand.java:65)
   Caused by: java.nio.file.NoSuchFileException: /tmp/does-not-exist
        at 
java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
        at 
java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
        at 
java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at 
java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:218)
        at java.base/java.nio.file.Files.newByteChannel(Files.java:380)
        at java.base/java.nio.file.Files.newByteChannel(Files.java:432)
        at java.base/java.nio.file.Files.readAllBytes(Files.java:3288)
        at org.apache.kafka.common.utils.Utils.readFileAsString(Utils.java:784)
        ... 3 more
   ```
   
   ### Committer Checklist (excluded from commit message)
   - [ ] Verify design and implementation 
   - [ ] Verify test coverage and CI build status
   - [ ] Verify documentation (including upgrade notes)
   


-- 
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: jira-unsubscr...@kafka.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to