Avro
  1. Avro
  2. AVRO-450

Python - Ruby interoperability failing with "Mail" client/server example

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 1.3.2
    • Fix Version/s: 1.3.3
    • Component/s: python, ruby
    • Labels:
      None

      Description

      Errors are generated when attempting to have python client call ruby server (and vice-versa). I noticed this issue when updating the quickstart, however this is also happening with the 1.3.0 shipping code for the Mail example (in test directory). I see this with both server-python/client-ruby and server-ruby/client-python.

      -------------------------
      PYTHONPATH=../src python ./sample_http_client.py you me hello_world
      /home/phunt/a/avro-src-1.3.0/lang/py/src/avro/protocol.py:20: DeprecationWarning: the md5 module is deprecated; use hashlib instead
      import md5
      Traceback (most recent call last):
      File "./sample_http_client.py", line 90, in <module>
      result = requestor.request('send', params)
      File "/home/phunt/a/avro-src-1.3.0/lang/py/src/avro/ipc.py", line 138, in request
      call_response = self.transceiver.transceive(call_request)
      File "/home/phunt/a/avro-src-1.3.0/lang/py/src/avro/ipc.py", line 471, in transceive
      conn_success = self.conn.connect()
      File "/usr/lib/python2.6/httplib.py", line 704, in connect
      self.timeout)
      File "/usr/lib/python2.6/socket.py", line 514, in create_connection
      raise error, msg
      socket.error: [Errno 111] Connection refused

      -------------------

      RUBYLIB=../lib ruby -r 'rubygems' ./sample_ipc_server.rb
      ../lib/avro/ipc.rb:434:in `read_buffer_length': Socket read 0 bytes. (Avro::IPC::ConnectionClosedException)
      from ../lib/avro/ipc.rb:380:in `read_framed_message'
      from ../lib/avro/ipc.rb:378:in `loop'
      from ../lib/avro/ipc.rb:378:in `read_framed_message'
      from ../lib/avro/ipc.rb:243:in `respond'
      from ./sample_ipc_server.rb:84:in `handle'
      from ./sample_ipc_server.rb:74:in `run'
      from ./sample_ipc_server.rb:90

      1. AVRO-450.patch
        10 kB
        Jeff Hodges

        Activity

        Hide
        Jeff Hammerbacher added a comment -

        Ruby folks never implemented RPC interop tests, from what I could tell. Happy to help them debug once they start down that path.

        Show
        Jeff Hammerbacher added a comment - Ruby folks never implemented RPC interop tests, from what I could tell. Happy to help them debug once they start down that path.
        Hide
        Jeff Hodges added a comment -

        Yeah, known problem. I've got work to do.

        Show
        Jeff Hodges added a comment - Yeah, known problem. I've got work to do.
        Hide
        Patrick Hunt added a comment -

        FF to remove blocker status if this is a known/expected limitation.

        Show
        Patrick Hunt added a comment - FF to remove blocker status if this is a known/expected limitation.
        Hide
        Jeff Hammerbacher added a comment -

        Hey Jeff, do you plan on working on this ticket any time soon? I'd be happy to help debug. Getting a third language into the RPC interop pantheon would improve my peace of mind immeasurably.

        Show
        Jeff Hammerbacher added a comment - Hey Jeff, do you plan on working on this ticket any time soon? I'd be happy to help debug. Getting a third language into the RPC interop pantheon would improve my peace of mind immeasurably.
        Hide
        Jeff Hodges added a comment -

        Sigh, this is because the python version started using the web version of IPC instead of sockets. There is no HTTP client code.

        Show
        Jeff Hodges added a comment - Sigh, this is because the python version started using the web version of IPC instead of sockets. There is no HTTP client code.
        Hide
        Jeff Hodges added a comment -

        Meaning, this just needs some work done and probably isn't some weird bug.

        Show
        Jeff Hodges added a comment - Meaning, this just needs some work done and probably isn't some weird bug.
        Hide
        Jeff Hodges added a comment -

        Hammer, it looks like the current sample_http_client.py is currently broken. New ticket?

        Show
        Jeff Hodges added a comment - Hammer, it looks like the current sample_http_client.py is currently broken. New ticket?
        Hide
        Jeff Hodges added a comment -

        Boom. Example HTTP IPC server and client for ruby.

        Show
        Jeff Hodges added a comment - Boom. Example HTTP IPC server and client for ruby.
        Hide
        Jeff Hodges added a comment -

        This, of course, is modulo AVRO-496.

        Show
        Jeff Hodges added a comment - This, of course, is modulo AVRO-496 .
        Hide
        Jeff Hodges added a comment -

        Committed.

        Show
        Jeff Hodges added a comment - Committed.

          People

          • Assignee:
            Jeff Hodges
            Reporter:
            Patrick Hunt
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development