[ https://issues.apache.org/jira/browse/HBASE-5795?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zhihong Yu updated HBASE-5795: ------------------------------ Attachment: 5795-v2.txt Patch v1 didn't make testHServerLoadVersioning pass. Patch v2 does. I found that the version of RegionLoad was actually serialized twice in 0.92: first by VersionedWritable.write(), followed by RegionLoad.write(). In patch v2, I removed the redundant write. readFields92() consumes the second copy of version. > hbase-3927 breaks 0.92<->0.94 compatibility > ------------------------------------------- > > Key: HBASE-5795 > URL: https://issues.apache.org/jira/browse/HBASE-5795 > Project: HBase > Issue Type: Bug > Reporter: stack > Assignee: stack > Fix For: 0.94.0 > > Attachments: 5795-v2.txt, 5795.unittest.txt > > > This commit broke our 0.92/0.94 compatibility: > {code} > ------------------------------------------------------------------------ > r1136686 | stack | 2011-06-16 14:18:08 -0700 (Thu, 16 Jun 2011) | 1 line > HBASE-3927 display total uncompressed byte size of a region in web UI > {code} > I just tried the new RC for 0.94. I brought up a 0.94 master on a 0.92 > cluster and rather than just digest version 1 of the HServerLoad, I get this: > {code} > 2012-04-14 22:47:59,752 WARN org.apache.hadoop.ipc.HBaseServer: Unable to > read call parameters for client 10.4.14.38 > java.io.IOException: Error in readFields > at > org.apache.hadoop.hbase.io.HbaseObjectWritable.readObject(HbaseObjectWritable.java:684) > at > org.apache.hadoop.hbase.ipc.Invocation.readFields(Invocation.java:125) > at > org.apache.hadoop.hbase.ipc.HBaseServer$Connection.processData(HBaseServer.java:1269) > at > org.apache.hadoop.hbase.ipc.HBaseServer$Connection.readAndProcess(HBaseServer.java:1184) > at > org.apache.hadoop.hbase.ipc.HBaseServer$Listener.doRead(HBaseServer.java:722) > at > org.apache.hadoop.hbase.ipc.HBaseServer$Listener$Reader.doRunLoop(HBaseServer.java:513) > at > org.apache.hadoop.hbase.ipc.HBaseServer$Listener$Reader.run(HBaseServer.java:488) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:662) > Caused by: A record version mismatch occured. Expecting v2, found v1 > at > org.apache.hadoop.io.VersionedWritable.readFields(VersionedWritable.java:46) > at > org.apache.hadoop.hbase.HServerLoad$RegionLoad.readFields(HServerLoad.java:379) > at > org.apache.hadoop.hbase.HServerLoad.readFields(HServerLoad.java:686) > at > org.apache.hadoop.hbase.io.HbaseObjectWritable.readObject(HbaseObjectWritable.java:681) > ... 9 more > {code} -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira