Encoding bug on Python side
Closed this issue · 7 comments
Haiwang found the Python and C++ sides were using different byte order for storing the message part size. We keep C++ as is since this encoding is what's soon (hopefully) to be merged into cppzmq.
This is fixed in 17a9bec
$ ./test/check_codec.sh
tests all possible mix of C++ and Python for client and server.
Reopen as there is some consolidation needed. Adding domo duplicated encode/decode Python-side code which is still broken.
Is the python encode/decode still different from cpp?
For right now, effectively "yes". And, I'm working on it.
Besides different code paths (flow vs domo) between zio::Message
and send()/recv()
leading to different enc/dec there are also some differences/bugs in how multipart messages are handled with the ROUTER/DEALER pair.
Nothing really big, just some clean up and factoring to do. Hopeully it will be cleaned up later today.
I see, thanks!
This test:
$ ./test/check_codec.sh
now exercises all valid combo of C++/Python, ROUTER/SERVER and DEALER/CLIENT.
Thanks for this update. The order issue was fixed for me.
One small thing: import sys
needed for this
https://github.com/brettviren/zio/blob/master/python/zio/util.py#L197
Thanks. The import sys
is added in 9e1e9ef