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(..).  Thanks @bshashikant.
   
   > +++ 
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:
us...@infra.apache.org


With regards,
Apache Git Services

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

Reply via email to