)]}'
{
  "commit": "e1371e67a841257ca6af53c0cd766197138cf493",
  "tree": "36bc9799bc8c9660af5073366f121db64a0bd0e2",
  "parents": [
    "9b8ed167be702e2ce30d79e0c9692bee965d6a0b"
  ],
  "author": {
    "name": "Cole Greer",
    "email": "cole@colegreer.ca",
    "time": "Fri May 08 16:06:34 2026 -0700"
  },
  "committer": {
    "name": "Cole Greer",
    "email": "cole@colegreer.ca",
    "time": "Fri May 08 17:34:49 2026 -0700"
  },
  "message": "Prevent OOM during streaming deserialization of large responses\n\nWhen a server-side evaluationTimeout fires mid-stream, the client may\nhave already queued significant response data. The reader thread could\nOOM trying to deserialize large objects (e.g., vertex properties with\nhuge strings) from the already-queued bytes.\n\nFixes:\n- Reduce MAX_QUEUE_CHUNKS from 512 to 64 (bounds heap usage from\n  queued byte[] chunks)\n- cancel() now calls markError() instead of markComplete(), causing\n  QueueInputStream.read() to throw immediately on next access\n- Add error check at top of QueueInputStream.read() so in-progress\n  reads from current buffer fail fast when cancelled\n- Reader loop checks cancelled flag between readChunk() calls\n\nThe combined effect: when the ResultSet is done (timeout, error, or\nclient abandonment), the reader thread stops consuming data promptly\nrather than continuing to deserialize queued bytes until OOM.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dac3450bc33937d24d56163a1dad6437027ea1cd",
      "old_mode": 33188,
      "old_path": "gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/QueueInputStream.java",
      "new_id": "90c15e0b81506f356e181b834e147393e0f414ea",
      "new_mode": 33188,
      "new_path": "gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/QueueInputStream.java"
    },
    {
      "type": "modify",
      "old_id": "80ad6011cff9f32916f571c2073dad35e31e3c68",
      "old_mode": 33188,
      "old_path": "gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/StreamingResponseConsumer.java",
      "new_id": "d12a4ed0ed388cfa36a1ba91e4cb0ef306bfb455",
      "new_mode": 33188,
      "new_path": "gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/StreamingResponseConsumer.java"
    }
  ]
}
