)]}'
{
  "commit": "150e3bffd12cd3d61b32e5ed33897d3181ea0cf4",
  "tree": "b2e9621bcebfe12a4fceda09ab63f0f833b70b85",
  "parents": [
    "78df1e0fd3c3d714fa8e24730459718b35687b57"
  ],
  "author": {
    "name": "Aviral Garg",
    "email": "gargaviral99@gmail.com",
    "time": "Thu May 21 16:27:41 2026 +0530"
  },
  "committer": {
    "name": "reshke",
    "email": "reshke@double.cloud",
    "time": "Sat Jun 13 08:11:02 2026 +0000"
  },
  "message": "Fix recovery slot handling before pg_basebackup (#1675)\n\nThis PR fixes the recovery flow when the internal WAL replication slot does not already exist on the source segment.\n\nBefore this change, both gpsegrecovery and gpconfigurenewsegment would start pg_basebackup first and only retry with slot creation after the backup failed. In practice, that meant a full base backup could run for a long time and then fail at the end because the slot was missing.\n\nThis change fixes that at the root:\n\nadds a shared helper to check whether the replication slot already exists\ncreates the slot up front when needed, before pg_basebackup starts\nremoves the fallback second pg_basebackup attempt from both recovery paths\nupdates unit tests to cover the new behavior and the new failure mode\n\n---------\n\nCo-authored-by: Leonid \u003c63977577+leborchuk@users.noreply.github.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a2af133c28f8c08f97c0ae15d842e50cfa3da04a",
      "old_mode": 33188,
      "old_path": "gpMgmt/bin/gppylib/commands/pg.py",
      "new_id": "f430b294500ba0096d3baa3a54cb9cbec82bf9c5",
      "new_mode": 33188,
      "new_path": "gpMgmt/bin/gppylib/commands/pg.py"
    },
    {
      "type": "modify",
      "old_id": "117f62b41ea6bd5b5feca9eff7f99e6043dccd50",
      "old_mode": 33188,
      "old_path": "gpMgmt/bin/gppylib/commands/test/unit/test_unit_pg_base_backup.py",
      "new_id": "66621c39d5cc528545afbded8b27c26b0e26b74f",
      "new_mode": 33188,
      "new_path": "gpMgmt/bin/gppylib/commands/test/unit/test_unit_pg_base_backup.py"
    },
    {
      "type": "modify",
      "old_id": "c806dbaed90ca24e4a1f6c2850c25abc1a6fff1d",
      "old_mode": 33188,
      "old_path": "gpMgmt/bin/gppylib/test/unit/test_unit_gpsegrecovery.py",
      "new_id": "b525801b07aca0fd041a7c9873ddce8d7db8f214",
      "new_mode": 33188,
      "new_path": "gpMgmt/bin/gppylib/test/unit/test_unit_gpsegrecovery.py"
    },
    {
      "type": "modify",
      "old_id": "c37c70bf1fad1e9c53f062ad4952abbed97b8093",
      "old_mode": 33261,
      "old_path": "gpMgmt/bin/lib/gpconfigurenewsegment",
      "new_id": "4f71348b9a820413c2033149656f1a94eda66606",
      "new_mode": 33261,
      "new_path": "gpMgmt/bin/lib/gpconfigurenewsegment"
    },
    {
      "type": "modify",
      "old_id": "811a73ccbb5fc60d18fc4d5e206d4642aa7d31b9",
      "old_mode": 33188,
      "old_path": "gpMgmt/sbin/gpsegrecovery.py",
      "new_id": "51c72581e4711d9e725d5f8c629970d7118d1167",
      "new_mode": 33188,
      "new_path": "gpMgmt/sbin/gpsegrecovery.py"
    }
  ]
}
