basho / riak-python-client

The Riak client for Python.
Apache License 2.0
321 stars 183 forks source link

Fix riak_pb to pass bytes to _ParseOptions #527

Open zmedico opened 6 years ago

zmedico commented 6 years ago

This fixes errors like the following observed with protobuf-3.3.0:

Traceback (most recent call last):
  File "/usr/lib64/python3.4/site-packages/google/protobuf/internal/python_message.py", line 1063, in MergeFromString
    if self._InternalParse(serialized, 0, length) != length:
  File "/usr/lib64/python3.4/site-packages/google/protobuf/internal/python_message.py", line 1085, in InternalParse
    (tag_bytes, new_pos) = local_ReadTag(buffer, pos)
  File "/usr/lib64/python3.4/site-packages/google/protobuf/internal/decoder.py", line 181, in ReadTag
    while six.indexbytes(buffer, pos) & 0x80:
TypeError: unsupported operand type(s) for &: 'str' and 'int'

During handling of the above exception, another exception occurred:

  File "riak-2.7.0/riak/pb/riak_dt_pb2.py", line 984, in <module>
    DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), '\n\027com.basho.riak.protobufB\010RiakDtPB')
  File "/usr/lib64/python3.4/site-packages/google/protobuf/descriptor.py", line 869, in _ParseOptions
    message.ParseFromString(string)
  File "/usr/lib64/python3.4/site-packages/google/protobuf/message.py", line 185, in ParseFromString
    self.MergeFromString(serialized)
  File "/usr/lib64/python3.4/site-packages/google/protobuf/internal/python_message.py", line 1069, in MergeFromString
    raise message_mod.DecodeError('Truncated message.')
google.protobuf.message.DecodeError: Truncated message.