)]}'
{
  "commit": "9cb76d9d67c05ebb32470bbe4f33bd4f623b8f0a",
  "tree": "0bb26a23841f94d0d004f2d9a81b3f37e4e5a80e",
  "parents": [
    "b6b8fef3ca7840c15cfb92cd03aea4e10ca39367"
  ],
  "author": {
    "name": "zezeozue",
    "email": "zezeozue@google.com",
    "time": "Thu May 07 15:19:20 2026 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu May 07 15:19:20 2026 +0100"
  },
  "message": "tp: don\u0027t abort hprof parse when a sub-record spans segment boundaries (#5764)\n\nParseHeapDump returned false when a sub-record\u0027s bytes ran past the\ndeclared HEAP_DUMP_SEGMENT end, aborting the entire parse. AHAT reads\neach sub-record by its own internal length and treats the segment\nboundary as advisory; some files split segments at offsets that bisect a\nCLASS_DUMP. Those loaded with empty heap_graph_object / _reference\ntables.\n\nDrop the strict overshoot check; skip leftover bytes only on undershoot.\nTrack overshoots in hprof_segment_overshoot_counter (kInfo) so the\nsignal stays visible without flagging valid files as malformed.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ce11a415a9351c39ce0732dcaca99f1852d44acf",
      "old_mode": 33188,
      "old_path": "src/trace_processor/importers/art_hprof/art_heap_graph_builder.cc",
      "new_id": "a7415d93f74c8e5aaf80a02da0c9e6092c5ec93b",
      "new_mode": 33188,
      "new_path": "src/trace_processor/importers/art_hprof/art_heap_graph_builder.cc"
    },
    {
      "type": "modify",
      "old_id": "1bf3def2b750344e3172ec3f8dcc9a7596d88087",
      "old_mode": 33188,
      "old_path": "src/trace_processor/storage/stats.h",
      "new_id": "fa5c369a3e9502bc6992d3735e61988cdd4c4be5",
      "new_mode": 33188,
      "new_path": "src/trace_processor/storage/stats.h"
    }
  ]
}
