Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-4046

ChecksumTypeProto use NULL as enum value which is illegal in C/C++

VotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.0.0-alpha
    • Fix Version/s: 2.0.3-alpha
    • Component/s: datanode, namenode
    • Labels:
      None

      Description

      I tried to write a native hdfs client using protobuf based protocol, when I generate c++ code using hdfs.proto, the generated file can not compile, because NULL is an already defined macro.
      I am thinking two solutions:
      1. refactor all DataChecksum.Type.NULL references to NONE, which should be fine for all languages, but this may breaking compatibility.
      2. only change protobuf definition ChecksumTypeProto.NULL to NONE, and use enum integer value(DataChecksum.Type.id) to convert between ChecksumTypeProto and DataChecksum.Type, and make sure enum integer values are match(currently already match).
      I can make a patch for solution 2.

        Attachments

        1. HDFS-4046-ChecksumType-NULL.patch
          8 kB
          Binglin Chang
        2. HDFS-4046-ChecksumType-NULL-and-TestAuditLogs-bug.patch
          9 kB
          Binglin Chang
        3. HDFS-4096-ChecksumTypeProto-NULL.patch
          9 kB
          Binglin Chang

        Issue Links

          Activity

            People

            • Assignee:
              decster Binglin Chang
              Reporter:
              decster Binglin Chang

              Dates

              • Created:
                Updated:
                Resolved:

                Issue deployment