You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by GitBox <gi...@apache.org> on 2019/10/02 14:25:09 UTC

[GitHub] [hadoop] szetszwo edited a comment on issue #1517: HDDS-2169

szetszwo edited a comment on issue #1517: HDDS-2169
URL: https://github.com/apache/hadoop/pull/1517#issuecomment-537516020
 
 
   > Thanks @szetszwo for updating the patch. i think We need to change the parsing logic applyTransaction call in ContainerStateMachine as well because the integration test failures are related here:
   > `Caused by: org.apache.ratis.protocol.StateMachineException: org.apache.ratis.thirdparty.com.google.protobuf.InvalidProtocolBufferException from Server bad6dc6c-9418-448d-ad47-5f803b5e863b@group-6CEFB1F28D35: Protocol message contained an invalid tag (zero). at org.apache.ratis.thirdparty.com.google.protobuf.InvalidProtocolBufferException.invalidTag(InvalidProtocolBufferException.java:105) at org.apache.ratis.thirdparty.com.google.protobuf.CodedInputStream$ArrayDecoder.readTag(CodedInputStream.java:646) at org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos$ContainerCommandRequestProto.<init>(ContainerProtos.java:2692) at org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos$ContainerCommandRequestProto.<init>(ContainerProtos.java:2655) at org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos$ContainerCommandRequestProto$1.parsePartialFrom(ContainerProtos.java:7272) at org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos$ContainerCommandRequestProto$1.parsePartialFrom(ContainerProtos.java:7267) at org.apache.ratis.thirdparty.com.google.protobuf.AbstractParser.parsePartialFrom(AbstractParser.java:105) at org.apache.ratis.thirdparty.com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:125) at org.apache.ratis.thirdparty.com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:130) at org.apache.ratis.thirdparty.com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:49) at org.apache.hadoop.hdds.protocol.datanode.proto.ContainerProtos$ContainerCommandRequestProto.parseFrom(ContainerProtos.java:4110) at org.apache.hadoop.ozone.container.common.transport.server.ratis.ContainerStateMachine.getContainerCommandRequestProto(ContainerStateMachine.java:383) at org.apache.hadoop.ozone.container.common.transport.server.ratis.ContainerStateMachine.applyTransaction(ContainerStateMachine.java:708) at org.apache.ratis.server.impl.RaftServerImpl.applyLogToStateMachine(RaftServerImpl.java:1274) at org.apache.ratis.server.impl.StateMachineUpdater.applyLog(StateMachineUpdater.java:224) at org.apache.ratis.server.impl.StateMachineUpdater.run(StateMachineUpdater.java:165)`
   
   Oops, need one more fix (a4ae0852f818f6a49403b784790b1babb3df71f5) as shown below since it calls request.getMessage().getContent() again in startTransaction(..).
   
   > +++ b/hadoop-hdds/container-service/src/main/java/org/apache/hadoop/ozone/container/common/transport/server/ratis/ContainerStateMachine.java
   @@ -364,7 +364,7 @@ public TransactionContext startTransaction(RaftClientRequest request)
              .setStateMachine(this)
              .setServerRole(RaftPeerRole.LEADER)
              .setStateMachineContext(startTime)
              .setLogData(request.getMessage().getContent())
              .build();
        }
   

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


With regards,
Apache Git Services

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