You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ratis.apache.org by "Tsz-wo Sze (Jira)" <ji...@apache.org> on 2019/12/18 06:12:00 UTC

[jira] [Updated] (RATIS-696) RaftStorageDirectory.getLogSegmentFiles throws a deep IOException

     [ https://issues.apache.org/jira/browse/RATIS-696?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tsz-wo Sze updated RATIS-696:
-----------------------------
    Attachment: r696_20191218.patch

> RaftStorageDirectory.getLogSegmentFiles throws a deep IOException
> -----------------------------------------------------------------
>
>                 Key: RATIS-696
>                 URL: https://issues.apache.org/jira/browse/RATIS-696
>             Project: Ratis
>          Issue Type: Sub-task
>          Components: server
>            Reporter: Clay B.
>            Assignee: Tsz-wo Sze
>            Priority: Major
>         Attachments: r696_20191002.patch, r696_20191002b.patch, r696_20191002c.patch, r696_20191024.patch, r696_20191218.patch
>
>
> In {{RaftStorageDirectory.getLogSegmentFiles()}} one can hang while creating a {{Files.newDirectoryStream}}. If one gets an {{IOException}} the server will simply hang at this point.
> {code:java}
> Exception in thread "main" java.nio.file.FileSystemException: /home/vagrant/test_data/data2_slowed/64656d6f-5261-6674-4772-6f7570313233/current: Input/output error
>         at sun.nio.fs.UnixException.translateToIOException(UnixException.java:91)
>         at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
>         at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
>         at sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:427)
>         at java.nio.file.Files.newDirectoryStream(Files.java:457)
>         at org.apache.ratis.server.storage.RaftStorageDirectory.getLogSegmentFiles(RaftStorageDirectory.java:200)
>         at org.apache.ratis.server.raftlog.segmented.SegmentedRaftLog.loadLogSegments(SegmentedRaftLog.java:223)
>         at org.apache.ratis.server.raftlog.segmented.SegmentedRaftLog.openImpl(SegmentedRaftLog.java:204)
>         at org.apache.ratis.server.raftlog.RaftLog.open(RaftLog.java:247)
>         at org.apache.ratis.server.impl.ServerState.initRaftLog(ServerState.java:191)
>         at org.apache.ratis.server.impl.ServerState.<init>(ServerState.java:121)
>         at org.apache.ratis.server.impl.RaftServerImpl.<init>(RaftServerImpl.java:110)
>         at org.apache.ratis.server.impl.RaftServerProxy.lambda$newRaftServerImpl$2(RaftServerProxy.java:208)
>         at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>         at java.lang.Thread.run(Thread.java:748) {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)