[ https://issues.apache.org/jira/browse/HBASE-26021?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17370424#comment-17370424 ]
Bharath Vissapragada commented on HBASE-26021: ---------------------------------------------- Sorry, late to the party, I was OOO this week and couldn't access jira, catching up on the latest discussion. Agree that 1.7.0 is broken and we should spin up 1.7.0.1 ([~reidchan] I can also help create the release if you are busy, let me know, there is another critical fix HBASE-25984 that I recently committed to branch-1 that is worthy of inclusion). Coming to the fix, isn't the patch incomplete ? If we just serialize HTD instead of TD (=HTD + table state), there is loss of information, right? We are just not seeing it in tests because we cache the table state in TableStateManager, so something like disable table, stop hbase, start hbase should result in an enabled table? Let's properly revert this patch instead? (We may need to add some special code to handle serialized TDs for those who are already on 1.7.0?) > HBase 1.7 to 2.4 upgrade issue due to incompatible deserialization > ------------------------------------------------------------------ > > Key: HBASE-26021 > URL: https://issues.apache.org/jira/browse/HBASE-26021 > Project: HBase > Issue Type: Bug > Affects Versions: 1.7.0, 2.4.4 > Reporter: Viraj Jasani > Priority: Major > Attachments: Screenshot 2021-06-22 at 12.54.21 PM.png, Screenshot > 2021-06-22 at 12.54.30 PM.png > > > 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*" > {code:java} > 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){code} -- This message was sent by Atlassian Jira (v8.3.4#803005)