Hello, I'm new to Avro so I apologize if this is the wrong place to ask
this question (please let me know if there's another place to ask this).
Basically, I'm experimenting with different avpr IDL versioning where the
server has an older avpr specification and the client has a newer one (just
one more field). When the client sends a request to the server, the server
receives the message (with the additional field) and returns a response. At
the client side I get a really odd error:
File "./send_message.py", line 56, in <module>
print("Result: " + requestor.request("myecho", {"mymessage": message}))
File "/home/vm42/code/avro-example/avro-1.6.1/src/avro/ipc.py", line 145,
in request
return self.issue_request(call_request, message_name, request_datum)
File "/home/vm42/code/avro-example/avro-1.6.1/src/avro/ipc.py", line 260,
in issue_request
call_response_exists = self.read_handshake_response(buffer_decoder)
File "/home/vm42/code/avro-example/avro-1.6.1/src/avro/ipc.py", line 204,
in read_handshake_response
handshake_response.get('serverProtocol'))
File "/home/vm42/code/avro-example/avro-1.6.1/src/avro/ipc.py", line 120,
in set_remote_protocol
REMOTE_PROTOCOLS[self.transceiver.remote_name] = self.remote_protocol
File "/home/vm42/code/avro-example/avro-1.6.1/src/avro/ipc.py", line 474,
in <lambda>
remote_name = property(lambda self: self.sock.getsockname())
AttributeError: 'NoneType' object has no attribute 'getsockname'
Upon looking at the code, line 475 of ipc.py is:
remote_name = property(lambda self: self.sock.getsockname())
Now, nowhere is self.sock defined anywhere in ipc.py. Is this a typo?
Likewise, when I experimented with a server with newer avpr and a client
with an older avpr, I get a different error. My understanding is that
protocols should be forward/backward compatible and that is not the case
for me. I'm using 1.6.1. I'm not on this mailing list, if you could shed
some light please CC me.
-KevinX