Search code examples
pythonpython-3.xapache-kafkamsgpack

msgpack C# -> kafka -> consumer (kafka-python) fails with ExtraData: unpack(b) received extra data


I'm trying to decode msgpack encoded binary message received from Kafka stream and get the following exception inside Python repl.

ExtraData: unpack(b) received extra data.

In [32]: message.value
Out[32]: b'\xdc\x00\x15\xd9$00000000-0000-0000-0000-000000000000\xc0\xd9$00000000-0000-0000-0000-000000000000\xc0\xc0\xd9$00000000-0000-0000-0000-000000000000\xa0\xd2X\xc8d:\xc3\xd9$3c4d1a52-536c-421a-b258-346b06097fda\xd9$1ceb5f07-b62a-4d3b-811a-d2adfce45496\xae192.168.14.177\xc2\xa9OSXEditor\xb0Mac OS X 10.12.3\xd9$c5966702-2936-4028-b911-c417cea9744f\x00\xd9$19fba27e-abf9-4be1-b8c9-eb583f3b3f61\xcd\x13\xd0\xd9$87bafec1-5368-4b5c-8368-7309a3e39a80\xca\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'

In [33]: msgpack.unpackb(message.value)
---------------------------------------------------------------------------
ExtraData                                 Traceback (most recent call last)
<ipython-input-33-31c954e1d841> in <module>()
----> 1 msgpack.unpackb(message.value)

msgpack/_unpacker.pyx in msgpack._unpacker.unpackb (msgpack/_unpacker.cpp:2143)()

ExtraData: unpack(b) received extra data.

Python 3.5, msgpack-python

Any ideas?


Solution

  • Okay seems the problem is in msgpack-python, if I use https://pypi.python.org/pypi/u-msgpack-python everything worked

    In [4]: import umsgpack
    In [5]: umsgpack.unpackb(message.value)
    Out[5]: 
    ['00000000-0000-0000-0000-000000000000',
     None,
     '00000000-0000-0000-0000-000000000000',
     None,
     None,
     '00000000-0000-0000-0000-000000000000',
     '',
     1489527866,
     True,
     '3c4d1a52-536c-421a-b258-346b06097fda',
     '1ceb5f07-b62a-4d3b-811a-d2adfce45496',
     '192.168.14.177',
     False,
     'OSXEditor',
     'Mac OS X 10.12.3',
     'c5966702-2936-4028-b911-c417cea9744f',
     0,
     '19fba27e-abf9-4be1-b8c9-eb583f3b3f61',
     5072,
     '87bafec1-5368-4b5c-8368-7309a3e39a80',
     0.0]