hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shashikant Banerjee (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDDS-230) ContainerStateMachine should provide readStateMachineData api to read data if Containers with required during replication
Date Thu, 02 Aug 2018 16:45:00 GMT

    [ https://issues.apache.org/jira/browse/HDDS-230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16567050#comment-16567050
] 

Shashikant Banerjee commented on HDDS-230:
------------------------------------------

Thanks [~msingh] for reporting and working on this. The patch looks good to me overall. Some
minor comments inline:

1.  comments for "readStateMachineData" API need to be updated.

2. ContainerStateMachine.java: 274. The precondition here
{code:java}
Preconditions.checkArgument(HddsUtils.isReadOnly(requestProto))
{code}
The conditional check is here for all ReadOnlyCommands. Should the check be only specific
for 

"ReadChunk" requests only?

3. ContainerStateMachine.java:305 : 
{code:java}
// Preconditions.checkArgument(responseProto.getData() != null);{code}
can be replaced with 
{code:java}
// Preconditions.checkNotNull(responseProto.getData())
{code}
4.  dispatchReadStateMachineCommand && runCommand seem to be very similar functionally
except for the precondition check. Can we have a single function and move the precondition
check to the caller of dispatchReadStateMachineCommand?

5. Can we add a test for it to verify the behaviour?

> ContainerStateMachine should provide readStateMachineData api to read data if Containers
with required during replication
> -------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HDDS-230
>                 URL: https://issues.apache.org/jira/browse/HDDS-230
>             Project: Hadoop Distributed Data Store
>          Issue Type: Bug
>          Components: Ozone Datanode
>    Affects Versions: 0.2.1
>            Reporter: Mukul Kumar Singh
>            Assignee: Mukul Kumar Singh
>            Priority: Critical
>             Fix For: 0.2.1
>
>         Attachments: HDDS-230.001.patch, HDDS-230.002.patch
>
>
> Ozone datanode exits during data write with the following exception.
> {code}
> 2018-07-05 14:10:01,605 INFO org.apache.ratis.server.storage.RaftLogWorker: Rolling segment:40356aa1-741f-499c-aad1-b500f2620a3d_9858-RaftLogWorker
index to:4565
> 2018-07-05 14:10:01,607 ERROR org.apache.ratis.server.impl.StateMachineUpdater: Terminating
with exit status 2: StateMachineUpdater-40356aa1-741f-499c-aad1-b500f2620a3d_9858: the StateMachineUpdater
hits Throwable
> java.lang.NullPointerException
>         at org.apache.hadoop.ozone.container.common.transport.server.ratis.ContainerStateMachine.applyTransaction(ContainerStateMachine.java:272)
>         at org.apache.ratis.server.impl.RaftServerImpl.applyLogToStateMachine(RaftServerImpl.java:1058)
>         at org.apache.ratis.server.impl.StateMachineUpdater.run(StateMachineUpdater.java:154)
>         at java.lang.Thread.run(Thread.java:745)
> {code}
> This might be as a result of a ratis transaction which was not written through the "writeStateMachineData"
phase, however it was added to the raft log. This implied that stateMachineUpdater now applies
a transaction without the corresponding entry being added to the stateMachine.
> I am raising this jira to track the issue and will also raise a Ratis jira if required.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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


Mime
View raw message