)]}'
{"id":"openstack%2Ftrove~978314","triplet_id":"openstack%2Ftrove~stable%2F2025.2~I96fa125fa2044e40e3fbeb685cc826b62b21bd4a","project":"openstack/trove","branch":"stable/2025.2","topic":"fix-incorrect-wal-archive-cleanup-logic-stable/2025.2","attention_set":{},"removed_from_attention_set":{"26285":{"account":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"last_update":"2026-03-15 06:16:14.000000000","reason":"\u003cGERRIT_ACCOUNT_26285\u003e replied on the change","reason_account":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}},"37598":{"account":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"last_update":"2026-03-15 07:03:32.000000000","reason":"Change was submitted"}},"hashtags":[],"change_id":"I96fa125fa2044e40e3fbeb685cc826b62b21bd4a","subject":"Fix hardcoded WAL archive cleanup threshold in PostgreSQL","status":"MERGED","created":"2026-02-28 12:35:44.000000000","updated":"2026-03-15 07:04:25.000000000","submitted":"2026-03-15 07:03:32.000000000","submitter":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"978314-fix-incorrect-wal-archive-cleanup-logic-stable/2025.2","cherry_pick_of_change":973430,"cherry_pick_of_patch_set":11,"meta_rev_id":"afb1de503ebcb85a242126f6a6993fbd6576d4f7","_number":978314,"virtual_id_number":978314,"owner":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"all":[{"tag":"autogenerated:zuul:gate","value":2,"date":"2026-03-15 07:03:32.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":2,"date":"2026-03-15 06:16:14.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":1,"date":"2026-03-15 06:16:14.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true},"Backport-Candidate":{"all":[{"value":0,"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"value":0,"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"values":{"-1":"Not A Backport Candidate"," 0":"Backport Review Needed","+1":"Proposed Backport"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}],"CC":[{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2026-02-28 12:35:44.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":36080,"name":"Erkin Mussurmankulov","display_name":"Eric","email":"erkin.mussurmankulov@ps.kz","username":"mongoose404","status":"PS Cloud services employee"},"state":"CC"},{"updated":"2026-02-28 12:36:26.000000000","updated_by":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"reviewer":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"state":"REVIEWER"},{"updated":"2026-02-28 19:00:05.000000000","updated_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"reviewer":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"state":"REVIEWER"}],"messages":[{"id":"cc5fecfa98e73ef865a5215ecd7ac1336d5f20d6","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-02-28 12:35:44.000000000","message":"Patch Set 1: Cherry Picked from branch master.","accounts_in_message":[],"_revision_number":1},{"id":"da53d4a65a354e0446c7288396c3b1ed7453d747","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-02-28 13:29:57.000000000","message":"Patch Set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"008d1e89e8f41f4dac3a39cdedbb8eaab2e4c7f1","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-02-28 19:00:05.000000000","message":"Patch Set 2: Verified-1\n\nBuild failed (check pipeline).  For information on how to proceed, see\nhttps://docs.opendev.org/opendev/infra-manual/latest/developers.html#automated-testing\nand https://docs.openstack.org/project-team-guide/testing.html#how-to-handle-test-failures\n\nhttps://zuul.opendev.org/t/openstack/buildset/42e944668e9943398c73fd8ef837aa72\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/6209f0e4017a4bb7bc760ef6d46a0fb4 : FAILURE in 5m 09s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/5856e6a6a0504880aa947ed0f1fb5e3a : SUCCESS in 4m 42s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/413687cb9317461b8a281ae440141b9f : FAILURE in 6m 13s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/f77e16def1d84cc9b90a06169f827f4e : FAILURE in 6m 02s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/028a7eab18d1452ba82130ade1eba910 : FAILURE in 8m 50s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/5cfc15f196724e82a3313e65eadfa603 : SUCCESS in 5m 48s\n- trove-tempest-ubuntu-base-mysql8.4 https://zuul.opendev.org/t/openstack/build/15b1948e353644789a1affefc6aad24f : SUCCESS in 50m 48s\n- trove-tempest-ubuntu-backup-mysql8.4 https://zuul.opendev.org/t/openstack/build/3b9263391f564f4387a0a58a44572046 : SUCCESS in 1h 50m 18s (non-voting)\n- trove-tempest-ubuntu-replication-mysql8.4 https://zuul.opendev.org/t/openstack/build/0435e7d228cc4e01a224f56f098152f4 : SUCCESS in 1h 30m 56s (non-voting)\n- trove-tempest-cinder-storage-driver-mysql8.4 https://zuul.opendev.org/t/openstack/build/84485484ec6c4a918d1658808d830198 : SUCCESS in 1h 41m 10s (non-voting)\n- trove-tempest-ubuntu-base-mariadb11.4 https://zuul.opendev.org/t/openstack/build/a17a608f96784b57be92bc922ba423b1 : SUCCESS in 51m 33s\n- trove-tempest-ubuntu-backup-mariadb11.4 https://zuul.opendev.org/t/openstack/build/b4274be443bd4bb48e3b4c0c89a6a8b6 : SUCCESS in 1h 25m 16s (non-voting)\n- trove-tempest-ubuntu-replication-mariadb11.4 https://zuul.opendev.org/t/openstack/build/ae00044aee9b45b998be2e592c36a302 : SUCCESS in 1h 13m 58s (non-voting)\n- trove-tempest-cinder-storage-driver-mariadb11.4 https://zuul.opendev.org/t/openstack/build/14bbf557a19a4f10a8b0f199d5d8ecf1 : SUCCESS in 1h 43m 38s (non-voting)\n- trove-tempest-ubuntu-base-postgresql17 https://zuul.opendev.org/t/openstack/build/17f618881d9d42dd9b23f0f16b22b8e7 : SUCCESS in 46m 26s\n- trove-tempest-ubuntu-backup-postgresql17 https://zuul.opendev.org/t/openstack/build/0ad63ecd1eb54dadaa1f6d991cf84018 : SUCCESS in 1h 42m 49s (non-voting)\n- trove-tempest-ubuntu-replication-postgresql17 https://zuul.opendev.org/t/openstack/build/c2846ec1719747e6a7b438b40d2b1121 : SUCCESS in 1h 26m 33s (non-voting)\n- trove-tempest-cinder-storage-driver-postgresql17 https://zuul.opendev.org/t/openstack/build/0d3491642ed54eb381d3f736a8fd91cf : SUCCESS in 1h 35m 00s (non-voting)\n- trove-tox-bandit-baseline https://zuul.opendev.org/t/openstack/build/33ee326c8f3f4188b82289993664c28c : SUCCESS in 6m 11s","accounts_in_message":[],"_revision_number":2},{"id":"50f778dd9dc88fe3586cc4375ffcf41ce5bacb1d","tag":"autogenerated:gerrit:newPatchSet","author":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"date":"2026-03-02 07:51:18.000000000","message":"Patch Set 3: Commit message was updated.\n\nOutdated Votes:\n* Verified-1\n","accounts_in_message":[],"_revision_number":3},{"id":"8cdce7693c36e259001983130d51e2160a11adac","tag":"autogenerated:zuul:check","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-02 09:55:07.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/4850f4101097451a8ce1cc9525bf8ccd\n\n- openstack-tox-cover https://zuul.opendev.org/t/openstack/build/2512a5c6b4e44c788d8bf028b490bd7c : SUCCESS in 7m 26s\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/d2e55213831b4bee9bc44e9633b8bfe3 : SUCCESS in 6m 33s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/15d16a6e340448229a176f16eb1fe3c3 : SUCCESS in 3m 06s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/6221faaebe864db595597c1e6f6e7b5c : SUCCESS in 5m 23s\n- openstack-tox-py313 https://zuul.opendev.org/t/openstack/build/e8855c2f2dca40c98c158af91aa4c886 : SUCCESS in 7m 54s (non-voting)\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9e3cd2c6f35c41a49674542ab85e0010 : SUCCESS in 5m 15s\n- trove-tempest-ubuntu-base-mysql8.4 https://zuul.opendev.org/t/openstack/build/2b918031cc9d43d08e610be45207c8ff : SUCCESS in 1h 14m 45s\n- trove-tempest-ubuntu-backup-mysql8.4 https://zuul.opendev.org/t/openstack/build/b741985bce744e3695a681b90f81be2a : SUCCESS in 1h 56m 02s (non-voting)\n- trove-tempest-ubuntu-replication-mysql8.4 https://zuul.opendev.org/t/openstack/build/eec261abd93c4c369be33ef3b8a68bca : SUCCESS in 1h 25m 42s (non-voting)\n- trove-tempest-cinder-storage-driver-mysql8.4 https://zuul.opendev.org/t/openstack/build/835b45b6951d439daed6c53595f53f8e : SUCCESS in 1h 52m 39s (non-voting)\n- trove-tempest-ubuntu-base-mariadb11.4 https://zuul.opendev.org/t/openstack/build/02ffe4211aae4cbfa61a2aa5d532f61e : SUCCESS in 50m 26s\n- trove-tempest-ubuntu-backup-mariadb11.4 https://zuul.opendev.org/t/openstack/build/4299523b894740d187caeb42c49f33f0 : SUCCESS in 1h 49m 22s (non-voting)\n- trove-tempest-ubuntu-replication-mariadb11.4 https://zuul.opendev.org/t/openstack/build/00f7df4ee805405bae74ae95be78a309 : SUCCESS in 1h 22m 14s (non-voting)\n- trove-tempest-cinder-storage-driver-mariadb11.4 https://zuul.opendev.org/t/openstack/build/9274ce82bf974886ba079e631cafcaed : SUCCESS in 1h 47m 43s (non-voting)\n- trove-tempest-ubuntu-base-postgresql17 https://zuul.opendev.org/t/openstack/build/29f66341ebc347e6937dd417bc90c7b7 : SUCCESS in 1h 01m 30s\n- trove-tempest-ubuntu-backup-postgresql17 https://zuul.opendev.org/t/openstack/build/168d29a0bfbf4136b18351b56e4b5e17 : SUCCESS in 2h 02m 50s (non-voting)\n- trove-tempest-ubuntu-replication-postgresql17 https://zuul.opendev.org/t/openstack/build/f39fb087db5247e5a768500451ab3c79 : SUCCESS in 1h 22m 47s (non-voting)\n- trove-tempest-cinder-storage-driver-postgresql17 https://zuul.opendev.org/t/openstack/build/cee65f8e08ab426fb78e2fd43acc2cfe : SUCCESS in 1h 55m 03s (non-voting)\n- trove-tox-bandit-baseline https://zuul.opendev.org/t/openstack/build/4856e24d584b488d94d091277f57bafe : SUCCESS in 5m 15s","accounts_in_message":[],"_revision_number":3},{"id":"d2570e6f50dff85ef87201b0efca3b1e18d7545a","author":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"},"date":"2026-03-15 06:16:14.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"0b7552fa98cf57f914b02f4ab9e92e482e54bca4","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-15 06:16:35.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.","accounts_in_message":[],"_revision_number":3},{"id":"338c38402acb764da0e1699c6f497c9c005e4b81","tag":"autogenerated:zuul:gate","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-15 07:03:32.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/f8ae148b5cf3446397e3f9bde70d392c\n\n- openstack-tox-pep8 https://zuul.opendev.org/t/openstack/build/f355b7c183264cc895c74b5583c07d91 : SUCCESS in 7m 29s\n- openstack-tox-py310 https://zuul.opendev.org/t/openstack/build/2c4f305569044838834c50c9fec85abf : SUCCESS in 10m 39s\n- openstack-tox-py312 https://zuul.opendev.org/t/openstack/build/02de255261d948b69e53977dafd39662 : SUCCESS in 5m 49s\n- openstack-tox-docs https://zuul.opendev.org/t/openstack/build/9023e07621ad4465b624907867797e33 : SUCCESS in 5m 07s\n- trove-tempest-ubuntu-base-mysql8.4 https://zuul.opendev.org/t/openstack/build/29d00159e7874f1fb5ff45210354e977 : SUCCESS in 43m 56s\n- trove-tempest-ubuntu-base-mariadb11.4 https://zuul.opendev.org/t/openstack/build/d8c8c0ca54af4cf5802d427c0ceda017 : SUCCESS in 39m 31s\n- trove-tempest-ubuntu-base-postgresql17 https://zuul.opendev.org/t/openstack/build/fe2bfd7eecaf46c7952c16e55acb1099 : SUCCESS in 43m 21s","accounts_in_message":[],"_revision_number":3},{"id":"a031c909ff88f6ec9ae410056241583ab9ba2620","tag":"autogenerated:gerrit:merged","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-15 07:03:32.000000000","message":"Change has been successfully merged","accounts_in_message":[],"_revision_number":3},{"id":"afb1de503ebcb85a242126f6a6993fbd6576d4f7","tag":"autogenerated:zuul:promote","author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"date":"2026-03-15 07:04:25.000000000","message":"Patch Set 3:\n\nBuild succeeded (promote pipeline).\nhttps://zuul.opendev.org/t/openstack/buildset/9e9caa11e84344919194ead5728ec5fa\n\n- promote-openstack-tox-docs https://zuul.opendev.org/t/openstack/build/7625d8c1d7674bada638b5c6f8ee6f70 : SUCCESS in 37s","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"a6dd482fe2d187d79f7fe6b9ee1285a2922ae3bf","revisions":{"dfcb1e8bfcba414dd0faebb619e963279faedf31":{"kind":"REWORK","_number":1,"created":"2026-02-28 12:35:44.000000000","uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/14/978314/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/trove","ref":"refs/changes/14/978314/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/trove refs/changes/14/978314/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/trove refs/changes/14/978314/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/trove refs/changes/14/978314/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/trove refs/changes/14/978314/1"}}},"commit":{"parents":[{"commit":"e1f43bdfff8dc9de1bdc510ade7602dd8ebcc8c9","subject":"Postgres: Fix user password change and access","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/e1f43bdfff8dc9de1bdc510ade7602dd8ebcc8c9"}]}],"author":{"name":"Erkin Mussurmankulov","email":"mangust404@gmail.com","date":"2026-01-14 19:22:19.000000000","tz":300},"committer":{"name":"Ivan Anfimov","email":"lazekteam@gmail.com","date":"2026-02-28 12:35:44.000000000","tz":0},"subject":"Fix hardcoded WAL archive cleanup threshold in PostgreSQL","message":"Fix hardcoded WAL archive cleanup threshold in PostgreSQL\n\nThe current WAL archive cleanup logic triggers only when the archive\ndirectory exceeds 50% of the total volume size. On instances with\nlarge volumes and relatively small effective data size, this allows\nthe WAL archive to grow excessively and consume most of the disk.\n\nFor example, on a 200GB volume with ~10GB of actual database data,\nWAL cleanup starts only after the archive reaches ~100GB. With regular\nscheduled backups, the archive size then remains close to this value,\nunnecessarily reserving disk space and increasing the risk of running\nout of free space as the database grows.\n\nThis change replaces the hardcoded volume-based threshold with a limit\nderived from max_wal_size and a configurable safety factor:\n\n  max_archive_size \u003d max_wal_size * WAL_SAFETY_FACTOR\n\nThe proposed default WAL_SAFETY_FACTOR is 5, which provides sufficient\nheadroom for typical workloads while keeping archive growth bounded.\nUsers with write-heavy workloads can increase max_wal_size as needed.\n\nThe patch also introduces a mechanism to disable the default WAL\narchive cleanup for advanced use cases by detecting a special keyword\nin archive_command. Documentation includes an example of implementing\na custom mtime-based cleanup routine.\n\nSee also the security note regarding archive_command handling in\nvalidation-rules.json.\n\nDepends-On: https://review.opendev.org/c/openstack/trove/+/978130\nDepends-On: https://review.opendev.org/c/openstack/trove/+/978131\nChange-Id: I96fa125fa2044e40e3fbeb685cc826b62b21bd4a\nSigned-off-by: Erkin Mussurmankulov \u003cmangust404@gmail.com\u003e\n(cherry picked from commit 0604f0ecc97504062fbf335eccc8c65c6d9b1099)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/dfcb1e8bfcba414dd0faebb619e963279faedf31"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/dfcb1e8bfcba414dd0faebb619e963279faedf31"}]},"branch":"refs/heads/stable/2025.2"},"1bf3102dd7358eb3a010f556848e2d75652b1896":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2026-02-28 13:29:57.000000000","uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/14/978314/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/trove","ref":"refs/changes/14/978314/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/trove refs/changes/14/978314/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/trove refs/changes/14/978314/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/trove refs/changes/14/978314/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/trove refs/changes/14/978314/2"}}},"commit":{"parents":[{"commit":"e1f43bdfff8dc9de1bdc510ade7602dd8ebcc8c9","subject":"Postgres: Fix user password change and access","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/e1f43bdfff8dc9de1bdc510ade7602dd8ebcc8c9"}]}],"author":{"name":"Erkin Mussurmankulov","email":"mangust404@gmail.com","date":"2026-01-14 19:22:19.000000000","tz":300},"committer":{"name":"Ivan Anfimov","email":"lazekteam@gmail.com","date":"2026-02-28 13:29:57.000000000","tz":0},"subject":"Fix hardcoded WAL archive cleanup threshold in PostgreSQL","message":"Fix hardcoded WAL archive cleanup threshold in PostgreSQL\n\nThe current WAL archive cleanup logic triggers only when the archive\ndirectory exceeds 50% of the total volume size. On instances with\nlarge volumes and relatively small effective data size, this allows\nthe WAL archive to grow excessively and consume most of the disk.\n\nFor example, on a 200GB volume with ~10GB of actual database data,\nWAL cleanup starts only after the archive reaches ~100GB. With regular\nscheduled backups, the archive size then remains close to this value,\nunnecessarily reserving disk space and increasing the risk of running\nout of free space as the database grows.\n\nThis change replaces the hardcoded volume-based threshold with a limit\nderived from max_wal_size and a configurable safety factor:\n\n  max_archive_size \u003d max_wal_size * WAL_SAFETY_FACTOR\n\nThe proposed default WAL_SAFETY_FACTOR is 5, which provides sufficient\nheadroom for typical workloads while keeping archive growth bounded.\nUsers with write-heavy workloads can increase max_wal_size as needed.\n\nThe patch also introduces a mechanism to disable the default WAL\narchive cleanup for advanced use cases by detecting a special keyword\nin archive_command. Documentation includes an example of implementing\na custom mtime-based cleanup routine.\n\nSee also the security note regarding archive_command handling in\nvalidation-rules.json.\n\nDepends-On: https://review.opendev.org/c/openstack/trove/+/978326\nDepends-On: https://review.opendev.org/c/openstack/trove/+/978325\nChange-Id: I96fa125fa2044e40e3fbeb685cc826b62b21bd4a\nSigned-off-by: Erkin Mussurmankulov \u003cmangust404@gmail.com\u003e\n(cherry picked from commit 0604f0ecc97504062fbf335eccc8c65c6d9b1099)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/1bf3102dd7358eb3a010f556848e2d75652b1896"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/1bf3102dd7358eb3a010f556848e2d75652b1896"}]},"branch":"refs/heads/stable/2025.2","description":"Edit commit message"},"a6dd482fe2d187d79f7fe6b9ee1285a2922ae3bf":{"kind":"NO_CODE_CHANGE","_number":3,"created":"2026-03-02 07:51:18.000000000","uploader":{"_account_id":37598,"name":"Ivan Anfimov","display_name":"Ivan Anfimov","email":"lazekteam@gmail.com","username":"anfimovir"},"ref":"refs/changes/14/978314/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/trove","ref":"refs/changes/14/978314/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/trove refs/changes/14/978314/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/trove refs/changes/14/978314/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/trove refs/changes/14/978314/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/trove refs/changes/14/978314/3"}}},"commit":{"parents":[{"commit":"e1f43bdfff8dc9de1bdc510ade7602dd8ebcc8c9","subject":"Postgres: Fix user password change and access","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/e1f43bdfff8dc9de1bdc510ade7602dd8ebcc8c9"}]}],"author":{"name":"Erkin Mussurmankulov","email":"mangust404@gmail.com","date":"2026-01-14 19:22:19.000000000","tz":300},"committer":{"name":"Ivan Anfimov","email":"lazekteam@gmail.com","date":"2026-03-02 07:51:18.000000000","tz":0},"subject":"Fix hardcoded WAL archive cleanup threshold in PostgreSQL","message":"Fix hardcoded WAL archive cleanup threshold in PostgreSQL\n\nThe current WAL archive cleanup logic triggers only when the archive\ndirectory exceeds 50% of the total volume size. On instances with\nlarge volumes and relatively small effective data size, this allows\nthe WAL archive to grow excessively and consume most of the disk.\n\nFor example, on a 200GB volume with ~10GB of actual database data,\nWAL cleanup starts only after the archive reaches ~100GB. With regular\nscheduled backups, the archive size then remains close to this value,\nunnecessarily reserving disk space and increasing the risk of running\nout of free space as the database grows.\n\nThis change replaces the hardcoded volume-based threshold with a limit\nderived from max_wal_size and a configurable safety factor:\n\n  max_archive_size \u003d max_wal_size * WAL_SAFETY_FACTOR\n\nThe proposed default WAL_SAFETY_FACTOR is 5, which provides sufficient\nheadroom for typical workloads while keeping archive growth bounded.\nUsers with write-heavy workloads can increase max_wal_size as needed.\n\nThe patch also introduces a mechanism to disable the default WAL\narchive cleanup for advanced use cases by detecting a special keyword\nin archive_command. Documentation includes an example of implementing\na custom mtime-based cleanup routine.\n\nSee also the security note regarding archive_command handling in\nvalidation-rules.json.\n\nChange-Id: I96fa125fa2044e40e3fbeb685cc826b62b21bd4a\nSigned-off-by: Erkin Mussurmankulov \u003cmangust404@gmail.com\u003e\n(cherry picked from commit 0604f0ecc97504062fbf335eccc8c65c6d9b1099)\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/a6dd482fe2d187d79f7fe6b9ee1285a2922ae3bf"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/trove/commit/a6dd482fe2d187d79f7fe6b9ee1285a2922ae3bf"}]},"branch":"refs/heads/stable/2025.2","description":"Edit commit message"}},"requirements":[],"submit_records":[{"rule_name":"gerrit~DefaultSubmitRule","status":"CLOSED","labels":[{"label":"Verified","status":"MAY","applied_by":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]}},{"label":"Code-Review","status":"MAY","applied_by":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}},{"label":"Workflow","status":"MAY","applied_by":{"_account_id":26285,"name":"wu.chunyang","email":"wchy1001@gmail.com","username":"wu.chunyang"}}]}],"submit_requirements":[{"name":"Verified","description":"Verified in gate by CI","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Verified\u003dMAX AND -label:Verified\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Verified\u003dMAX"],"failing_atoms":["label:Verified\u003dMIN"],"atom_explanations":{}}},{"name":"Code-Review","description":"Code reviewed by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Code-Review\u003dMAX AND -label:Code-Review\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Code-Review\u003dMAX"],"failing_atoms":["label:Code-Review\u003dMIN"],"atom_explanations":{}}},{"name":"Workflow","description":"Approved for gate by core reviewer","status":"SATISFIED","is_legacy":false,"submittability_expression_result":{"expression":"label:Workflow\u003dMAX AND -label:Workflow\u003dMIN","fulfilled":true,"status":"PASS","passing_atoms":["label:Workflow\u003dMAX"],"failing_atoms":["label:Workflow\u003dMIN"],"atom_explanations":{}}}]}
