You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Ken Hu (Jira)" <ji...@apache.org> on 2026/07/18 03:03:00 UTC

[jira] [Created] (TINKERPOP-3275) gremlin-python graphbinary BigInt serializer incorrect for negative boundary values

Ken Hu created TINKERPOP-3275:
---------------------------------

             Summary: gremlin-python graphbinary BigInt serializer incorrect for negative boundary values
                 Key: TINKERPOP-3275
                 URL: https://issues.apache.org/jira/browse/TINKERPOP-3275
             Project: TinkerPop
          Issue Type: Bug
          Components: python
    Affects Versions: 3.8.1, 3.7.6
            Reporter: Ken Hu


gremlin-python can't serialize BigInt signed boundary values like -129.

{code:java}
 The failure path is:
  GraphBinaryWriter.write_object()
  BigIntIO.dictify()
  BigIntIO.write_bigint()
  obj.to_bytes(length, byteorder='big', signed=True)
{code}

For -129, Python reports:
(-129).bit_length() == 8
The current writer computes:

  length = (obj.bit_length() + 7) // 8  # 1

But one signed byte only represents -128 through 127, so -129 needs two bytes in two’s complement form. The serializer is using magnitude bit length as if it were signed encoded length.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)