[ 
https://issues.apache.org/jira/browse/HBASE-4300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

stack updated HBASE-4300:
-------------------------

    Attachment: 4300-v2.txt

How about this?

Does its own serialization which is kinda odd but here's how the rationale went:

+ Use VersionedWritables ... thats what we do everywhere else.  This has one 
byte only for version which might not be enough to definitively distinguish 
version+ServerName bytes from hostname port bytes.  Also, the DataInput doesn't 
have support for reading to the end of the stream and maybe we should be 
'waiting' till buffer is full.  Messy.
+ Protobufs would be new here.  Would have to mess about with .proto file or 
write schema on the fly (I'd have to figure how to do this -- punted).
+ JSON would be awkward distinguishing the old hostnameport from new format.... 
could work I suppose.

Ended up with a getVersionedBytes and a parseVersioneBytes.  The latter can 
figure if a ServerName or hostname+port.

> Start of new-version master fails if old master's znode is hanging around
> -------------------------------------------------------------------------
>
>                 Key: HBASE-4300
>                 URL: https://issues.apache.org/jira/browse/HBASE-4300
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.0
>            Reporter: Todd Lipcon
>            Assignee: stack
>            Priority: Critical
>             Fix For: 0.92.0
>
>         Attachments: 4300-v2.txt, 4300.txt
>
>
> I shut down an 0.90 cluster, and had to do so uncleanly. I then started a 
> trunk (0.92) cluster before the old master znode had expired. This cased:
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
>         at java.lang.String.substring(String.java:1937)
>         at 
> org.apache.hadoop.hbase.ServerName.parseHostname(ServerName.java:81)
>         at org.apache.hadoop.hbase.ServerName.<init>(ServerName.java:63)
>         at 
> org.apache.hadoop.hbase.master.ActiveMasterManager.blockUntilBecomingActiveMaster(ActiveMasterManager.java:148)
>         at 
> org.apache.hadoop.hbase.master.HMaster.becomeActiveMaster(HMaster.java:342)
>         at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:297)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to