)]}'
{
  "commit": "1c25312df107a3f94db0ac634b9748e638424e95",
  "tree": "de86aeb02160e57a598eaef4f76dcd74a26808e8",
  "parents": [
    "a968c2755e68ba71f7ddd221420a7d9dacba7bd1"
  ],
  "author": {
    "name": "Henry Schreiner",
    "email": "HenrySchreinerIII@gmail.com",
    "time": "Tue Oct 06 01:02:48 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Mon Oct 05 22:02:48 2026 -0700"
  },
  "message": "fix: only cache the internals pp after a successful lookup (#6190)\n\n* fix: only cache the internals pp after a successful lookup\n\nIn get_pp(), last_istate_tls was set before get_or_create_pp_in_state_dict().\nIf that call threw, the thread cache matched the interpreter but held a null\npp, so later calls returned nullptr (\"get_internals: get_pp() returned\nnullptr\"). Seen intermittently on MinGW in\ntest_import_in_subinterpreter_concurrently.\n\nAssisted-by: ClaudeCode:claude-opus-5-5\n\n* test: cover internals cache retries after failed lookup\n\n---------\n\nCo-authored-by: Ralf W. Grosse-Kunstleve \u003crgrossekunst@nvidia.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "164da39b5c003369ddfe4ace053b0e457358ecb0",
      "old_mode": 33188,
      "old_path": "include/pybind11/detail/internals.h",
      "new_id": "d755b28517aa702a3294127b2546d8dc324abea0",
      "new_mode": 33188,
      "new_path": "include/pybind11/detail/internals.h"
    },
    {
      "type": "modify",
      "old_id": "570519e641d4c455c3424c1361f51831c5f8fa00",
      "old_mode": 33188,
      "old_path": "tests/test_with_catch/test_subinterpreter.cpp",
      "new_id": "52b18aa6b75202d740aa03c464d7d58087d3b0fe",
      "new_mode": 33188,
      "new_path": "tests/test_with_catch/test_subinterpreter.cpp"
    }
  ]
}
