[
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: [email protected]
For additional commands, e-mail: [email protected]