[ https://issues.apache.org/jira/browse/HBASE-25340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17241005#comment-17241005 ]
Yongle Zhang commented on HBASE-25340: -------------------------------------- Hi [~pankajkumar], do you mean a PR for the static checker? > Protobuf Mesage Incompatibility Detector > ---------------------------------------- > > Key: HBASE-25340 > URL: https://issues.apache.org/jira/browse/HBASE-25340 > Project: HBase > Issue Type: Bug > Affects Versions: 2.3.3, 2.2.6 > Reporter: junwen yang > Priority: Major > Attachments: protoCompatibility.txt > > > Regarding the issue HBASE-25238. caused by the incompatibility of protobuf > message, we have created a static checker which keeps track of the proto file > change, and detect potential incompatibility: > # Add/delete required field, which is exactly the case reported in > HBASE-25238. > # The tag number of a field has been changed, as described in HDFS-9788. > Also, the [protobuf guidelines > |https://developers.google.com/protocol-buffers/docs/proto]suggests _each > field in the message definition has a *unique number*. These numbers are used > to identify your fields in the [message binary > format|https://developers.google.com/protocol-buffers/docs/encoding], and > should not be changed once your message type is in use_. > # A required field has been changed to optional, or an optional field has > been changed to required. According to the guidelines in [protobuf official > website|https://developers.google.com/protocol-buffers/docs/proto], > _*Required Is Forever* You should be very careful about marking fields as > {{required}}. If at some point you wish to stop writing or sending a required > field, it will be problematic to change the field to an optional field - old > readers will consider messages without this field to be incomplete and may > reject or drop them unintentionally. You should consider writing > application-specific custom validation routines for your buffers instead._ > We have applied our checker on the frequently maintained HBASE versions: > rel/1.4.3, rel/1.6.0, rel/2.2.6, rel/2.3.3, and master, and we found 37 > potential problems as attached, which includes the one found in HBASE-25238. > -- This message was sent by Atlassian Jira (v8.3.4#803005)