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

[RPC] Server does not tell clients what version it is

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Critical
    • Resolution: Unresolved
    • 2.0.0
    • None
    • rpc
    • None

    Description

      Strange. Server does not tell clients what version it is. It is explicitly this way. See [1] from refguide appendix on rpc protocol where client says what it wants and server is silent unless it is unable to satisfy the client request. I suppose it made sense at the time trying to squeeze in protobuf handling into a pre-existing RPC but in hindsight, it seems a little silly we don't answer the Connection setup with a Connection setup response that has stuff like server version and capabilities.

      Its not so much a problem for our clients currently but I'm in here because asynchbase is broke against hbase2 [2]; hbase2 removes support for getClosestRowOrBefore doing meta lookups; clients are supposed to do a reverse scan instead.

      manolamancha has just made a fix but you have to specify you are connecting to hbase2 which is not how asynchbase does it; in the past, asynchbase would just figure out what to do going off hints and exceptions thrown by our server.

      Not sure there is anything to do here. I tried reto-fitting a connection response but it will break hbase1 clients which we need to avoid.

      Here is yet another reason for our throwing away this home-grown RPC. New Project: put up an alternate port on which we'd provide a modern RPC, one that does streaming, etc., and basics like return server version.

      1. http://hbase.apache.org/book.html#_server
      2. https://github.com/OpenTSDB/asynchbase/issues/150#issuecomment-373949082

      Attachments

        Activity

          People

            Unassigned Unassigned
            stack Michael Stack
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: