Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-26021

HBase 1.7 to 2.4 upgrade issue due to incompatible deserialization

    XMLWordPrintableJSON

Details

    • Hide
      Incompatible table metadata serialization that was added to 1.7.0 is undone by this change. This faulty serialization causes upgrade issues from pre-1.7.0 versions to 1.7.0/2.x. Release 1.7.0 will be withdrawn from mirrors and the suggested upgrade version is 1.7.1+.
      Show
      Incompatible table metadata serialization that was added to 1.7.0 is undone by this change. This faulty serialization causes upgrade issues from pre-1.7.0 versions to 1.7.0/2.x. Release 1.7.0 will be withdrawn from mirrors and the suggested upgrade version is 1.7.1+.

    Description

      As of today, if we bring up HBase cluster using branch-1 and upgrade to branch-2.4, we are facing issue while parsing namespace from HDFS fileinfo. Instead of "hbase:meta" and "hbase:namespace", parsing using ProtobufUtil seems to be producing "\n hbase meta" and "\n hbase namespace"

      2021-06-22 00:05:56,611 INFO  [RpcServer.priority.RWQ.Fifo.read.handler=3,queue=1,port=16025] regionserver.RSRpcServices: Open hbase:meta,,1.1588230740
      2021-06-22 00:05:56,648 INFO  [RpcServer.priority.RWQ.Fifo.read.handler=5,queue=1,port=16025] regionserver.RSRpcServices: Open hbase:namespace,,1624297762817.396cb6cc00cd4334cb1ea3a792d7529a.
      2021-06-22 00:05:56,759 ERROR [RpcServer.priority.RWQ.Fifo.read.handler=5,queue=1,port=16025] ipc.RpcServer: Unexpected throwable object
      java.lang.IllegalArgumentException: Illegal character <
      > at 0. Namespaces may only contain 'alphanumeric characters' from any language and digits:
      ^Ehbase^R       namespace
              at org.apache.hadoop.hbase.TableName.isLegalNamespaceName(TableName.java:246)
              at org.apache.hadoop.hbase.TableName.isLegalNamespaceName(TableName.java:220)
              at org.apache.hadoop.hbase.TableName.<init>(TableName.java:348)
              at org.apache.hadoop.hbase.TableName.createTableNameIfNecessary(TableName.java:385)
              at org.apache.hadoop.hbase.TableName.valueOf(TableName.java:508)
              at org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil.toTableName(ProtobufUtil.java:2292)
              at org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil.toTableDescriptor(ProtobufUtil.java:2937)
              at org.apache.hadoop.hbase.client.TableDescriptorBuilder$ModifyableTableDescriptor.parseFrom(TableDescriptorBuilder.java:1625)
              at org.apache.hadoop.hbase.client.TableDescriptorBuilder$ModifyableTableDescriptor.access$200(TableDescriptorBuilder.java:597)
              at org.apache.hadoop.hbase.client.TableDescriptorBuilder.parseFrom(TableDescriptorBuilder.java:320)
              at org.apache.hadoop.hbase.util.FSTableDescriptors.readTableDescriptor(FSTableDescriptors.java:511)
              at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableDescriptorFromFs(FSTableDescriptors.java:496)
              at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableDescriptorFromFs(FSTableDescriptors.java:482)
              at org.apache.hadoop.hbase.util.FSTableDescriptors.get(FSTableDescriptors.java:210)
              at org.apache.hadoop.hbase.regionserver.RSRpcServices.openRegion(RSRpcServices.java:2112)
              at org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos$AdminService$2.callBlockingMethod(AdminProtos.java:35218)
              at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:395)
              at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
              at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338)
              at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318)
      2021-06-22 00:05:56,759 ERROR [RpcServer.priority.RWQ.Fifo.read.handler=3,queue=1,port=16025] ipc.RpcServer: Unexpected throwable object
      java.lang.IllegalArgumentException: Illegal character <
      > at 0. Namespaces may only contain 'alphanumeric characters' from any language and digits:
      ^Ehbase^R^Dmeta
              at org.apache.hadoop.hbase.TableName.isLegalNamespaceName(TableName.java:246)
              at org.apache.hadoop.hbase.TableName.isLegalNamespaceName(TableName.java:220)
              at org.apache.hadoop.hbase.TableName.<init>(TableName.java:348)
              at org.apache.hadoop.hbase.TableName.createTableNameIfNecessary(TableName.java:385)
              at org.apache.hadoop.hbase.TableName.valueOf(TableName.java:508)
              at org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil.toTableName(ProtobufUtil.java:2292)
              at org.apache.hadoop.hbase.shaded.protobuf.ProtobufUtil.toTableDescriptor(ProtobufUtil.java:2937)
              at org.apache.hadoop.hbase.client.TableDescriptorBuilder$ModifyableTableDescriptor.parseFrom(TableDescriptorBuilder.java:1625)
              at org.apache.hadoop.hbase.client.TableDescriptorBuilder$ModifyableTableDescriptor.access$200(TableDescriptorBuilder.java:597)
              at org.apache.hadoop.hbase.client.TableDescriptorBuilder.parseFrom(TableDescriptorBuilder.java:320)
              at org.apache.hadoop.hbase.util.FSTableDescriptors.readTableDescriptor(FSTableDescriptors.java:511)
              at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableDescriptorFromFs(FSTableDescriptors.java:496)
              at org.apache.hadoop.hbase.util.FSTableDescriptors.getTableDescriptorFromFs(FSTableDescriptors.java:482)
              at org.apache.hadoop.hbase.util.FSTableDescriptors.get(FSTableDescriptors.java:210)
              at org.apache.hadoop.hbase.regionserver.RSRpcServices.openRegion(RSRpcServices.java:2112)
              at org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos$AdminService$2.callBlockingMethod(AdminProtos.java:35218)
              at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:395)
              at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
              at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338)
              at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318)

      Attachments

        1. Screenshot 2021-06-22 at 12.54.30 PM.png
          265 kB
          Viraj Jasani
        2. Screenshot 2021-06-22 at 12.54.21 PM.png
          158 kB
          Viraj Jasani

        Issue Links

          Activity

            People

              bharathv Bharath Vissapragada
              vjasani Viraj Jasani
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: