You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by GitBox <gi...@apache.org> on 2021/05/06 12:24:37 UTC

[GitHub] [ozone] guihecheng commented on pull request #2158: HDDS-5089. On-demand disk checker for hdds volume

guihecheng commented on pull request #2158:
URL: https://github.com/apache/ozone/pull/2158#issuecomment-833480371


   @bshashikant As I tested manually in my local boxes, I hit the following msg below, so I think that ratis is not able to manage bad disks, since it is still try to use a bad disk to create a pipeline.
   
   As I know, ozone only passes `dfs.container.ratis.datanode.storage.dir` to ratis, and let ratis manage the directories itself(although we have a `ratisVolumeMap`, it is only used to build storage reports).
   So I think we should directly add disk checker support to ratis instead of handling it here in ozone.
   
   ```
   2021-05-06 18:19:48,166 [Command processor thread] ERROR org.apache.hadoop.ozone.container.common.statemachine.commandhandler.CreatePipelineCommandHandler: Can't create pipeline RATIS THREE PipelineID=08de41a6-5c9e-48d4-9789-4c09798ecffd
   java.io.IOException: Input/output error
           at org.apache.hadoop.ozone.container.common.transport.server.ratis.XceiverServerRatis.addGroup(XceiverServerRatis.java:805)
           at org.apache.hadoop.ozone.container.common.statemachine.commandhandler.CreatePipelineCommandHandler.handle(CreatePipelineCommandHandler.java:92)
           at org.apache.hadoop.ozone.container.common.statemachine.commandhandler.CommandDispatcher.handle(CommandDispatcher.java:99)
           at org.apache.hadoop.ozone.container.common.statemachine.DatanodeStateMachine.lambda$initCommandHandlerThread$2(DatanodeStateMachine.java:506)
           at java.lang.Thread.run(Thread.java:748)
   Caused by: java.io.IOException: Input/output error
           at java.io.UnixFileSystem.canonicalize0(Native Method)
           at java.io.UnixFileSystem.canonicalize(UnixFileSystem.java:172)
           at java.io.File.getCanonicalPath(File.java:620)
           at org.apache.ratis.server.storage.RaftStorageDirectoryImpl.analyzeStorage(RaftStorageDirectoryImpl.java:129)
           at org.apache.ratis.server.storage.RaftStorageImpl.analyzeAndRecoverStorage(RaftStorageImpl.java:95)
           at org.apache.ratis.server.storage.RaftStorageImpl.<init>(RaftStorageImpl.java:65)
           at org.apache.ratis.server.storage.RaftStorageImpl.<init>(RaftStorageImpl.java:51)
           at org.apache.ratis.server.impl.ServerState.<init>(ServerState.java:112)
           at org.apache.ratis.server.impl.RaftServerImpl.<init>(RaftServerImpl.java:193)
           at org.apache.ratis.server.impl.RaftServerProxy.lambda$newRaftServerImpl$4(RaftServerProxy.java:266)
           at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604)
           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
           ... 1 more
   ```


-- 
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.

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



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org