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

Chen-Jheng Sing commented on HDDS-14673:
----------------------------------------

Hi, [~szetszwo] ,

I tried removing ScmEnumCodec as suggested, but it seems to cause
SCM HA request encoding to fail.

Protobuf-generated enums (e.g. HddsProtos.PipelineState) still
implement ProtocolMessageEnum. Without a codec registered for it,
ScmCodecFactory cannot resolve a codec and throws
"Codec ... not found", which leads to pipeline update and
block allocation failures in integration tests.

It looks like ScmEnumCodec (or equivalent handling for
ProtocolMessageEnum) is still needed at the moment.

> Check if ScmEnumCodec is needed.
> --------------------------------
>
>                 Key: HDDS-14673
>                 URL: https://issues.apache.org/jira/browse/HDDS-14673
>             Project: Apache Ozone
>          Issue Type: Sub-task
>          Components: SCM HA
>            Reporter: Tsz-wo Sze
>            Assignee: Chen-Jheng Sing
>            Priority: Major
>
> Since we don't need a similar codec for 
> org.apache.ratis.thirdparty.com.google.protobuf.ProtocolMessageEnum,
> I suspect that ScmEnumCodec is not used at all.  We should try removing it 
> from ScmCodecFactory.
> {code}
> +++ 
> b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/ha/io/ScmCodecFactory.java
> @@ -40,7 +40,6 @@ public final class ScmCodecFactory {
>    static {
>      codecs.put(com.google.protobuf.Message.class, new 
> ScmNonShadedGeneratedMessageCodec());
>      codecs.put(Message.class, new ScmGeneratedMessageCodec());
> -    codecs.put(ProtocolMessageEnum.class, new ScmEnumCodec());
>      codecs.put(List.class, new ScmListCodec());
> {code}
> If it is not used, just remove the entire ScmEnumCodec class.  Otherwise, we 
> may discuss how to avoid reflection.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to