Skip to content

Commit 6a4cb24

Browse files
committed
Merge branch 'master' into query_cancellation_for_index_backfills
2 parents 32b7452 + 643c80d commit 6a4cb24

60 files changed

Lines changed: 8951 additions & 119 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.arclint

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@
1212
"([.]txt$)",
1313
"(^[.]gitmodules$)",
1414
"(Makefile$)",
15-
"(src/yb/common/ql_type[.]cc$)",
16-
"(src/yb/gutil/valgrind[.]h$)",
17-
"(^src/odyssey/)",
1815
"(^src/inline-thirdparty/)",
16+
"(^src/lint/cpplint[.]py$)",
17+
"(^src/odyssey/)",
18+
"(^src/yb/common/ql_type[.]cc$)",
19+
"(^src/yb/gutil/valgrind[.]h$)",
1920
"(^src/yb/integration-tests/upgrade-tests/builds.xml$)",
2021
"(^managed/src/main/resources/alert/alert_templates[.]yml$)",
2122
"(^managed/src/main/resources/alert/.*[.]template$)",
@@ -142,6 +143,7 @@
142143
"([.]hpp$)",
143144
"([.]h$)"
144145
],
146+
"bin": "src/lint/cpplint.py",
145147
"cpplint.header_guard_root_dir": "src",
146148
"cpplint.max_line_length": 100,
147149
"severity.rules": {

.github/workflows/yb-ctl-test.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ jobs:
3636
- uses: actions/checkout@v2
3737

3838
- name: Run yb-ctl-test
39+
env:
40+
# yb-ctl-test.sh copies only scripts/installation; python unit tests live under python/.
41+
YB_CTL_REPO_ROOT: ${{ github.workspace }}
3942
run: |
4043
set -x
4144
tmpdir=$(mktemp -d)

buf.lock

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Generated by buf. DO NOT EDIT.
2+
version: v2
3+
deps:
4+
- name: buf.build/googleapis/googleapis
5+
commit: c17df5b2beca46928cc87d5656bd5343
6+
digest: b5:648a01e0170d4512dea7d564016165decd1ed6e34bef79fe54753e51ad7e27545709ad9157d7551270147d551155c595a2fb0bf5bb33b1c83040ddbce915c604

buf.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# Local workspace for Buf CLI / VS Code "Buf" extension (proto navigation, lint).
2+
# Yugabyte CMake uses -I src for imports like "yb/common/common.proto".
3+
version: v2
4+
modules:
5+
- path: src
6+
# Local imports like "common.proto" (no yb/ prefix).
7+
- path: managed/node-agent/proto
8+
deps:
9+
- buf.build/googleapis/googleapis

build-support/lint.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@
3232

3333

3434
REPO_ROOT = Path(__file__).resolve().parent.parent
35-
DEFAULT_CPPLINT = (shutil.which("cpplint.py")
36-
or str(REPO_ROOT / "thirdparty/installed/bin/cpplint.py"))
35+
CPPLINT_PATH = REPO_ROOT / "src" / "lint" / "cpplint.py"
3736

3837

3938
@dataclass
@@ -93,7 +92,7 @@ def _changed_files(base: str | None = None) -> list[str]:
9392
9493
If ``base`` is provided, it is used directly as the diff base. Otherwise ``@{upstream}`` is
9594
used. If the current branch has no ``@{upstream}`` configured, the caller must pass
96-
``--rev`` explicitly we do not fall back to ``origin/master`` because on stable release
95+
``--rev`` explicitly -- we do not fall back to ``origin/master`` because on stable release
9796
branches that would include a huge unrelated fileset.
9897
"""
9998
if base is not None:
@@ -203,7 +202,7 @@ def _cpplint_filter_arg(severity_rules: dict) -> str:
203202

204203
def run_cpplint(linter: Linter, files: list[str]) -> list[Message]:
205204
"""Run Google's cpplint.py on ``files``."""
206-
binary = DEFAULT_CPPLINT
205+
binary = CPPLINT_PATH
207206
if not os.access(binary, os.X_OK):
208207
print(f"[lint] skipping {linter.name}: cpplint.py not executable at {binary}",
209208
file=sys.stderr)

build-support/tsan-suppressions.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,3 +187,15 @@ race:k5_once
187187
race:od_logger_format
188188
race:od_stat_query_end
189189
race:od_route_pool_stat
190+
191+
# pg_documentdb_gw_host bundles Rust code (tokio runtime, Rust stdlib, the
192+
# documentdb_gateway crate, and our bgworker glue) that is not compiled with
193+
# -Zsanitizer=thread (requires nightly Rust). TSAN cannot track the Rust
194+
# atomics that tokio uses for cross-thread task handoff and reports false
195+
# positive data races. Suppress the Rust call paths specifically so races
196+
# in C++ code that interacts with the gateway are still caught.
197+
race:tokio::
198+
race:std::fs::
199+
race:std::sys::
200+
race:documentdb_gateway::
201+
race:pg_documentdb_gw_host::

docs/content/stable/reference/configuration/yb-tserver.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1087,8 +1087,7 @@ The number of tablet replicas that each core on a YB-TServer can support.
10871087

10881088
{{% tags/wrap %}}
10891089

1090-
1091-
Default: 1024 * (7/10) (corresponding to an overhead of roughly 700 KiB per tablet)
1090+
Default: `1462`
10921091
{{% /tags/wrap %}}
10931092

10941093
The number of tablet replicas that each GiB reserved by YB-TServers for tablet overheads can support.

docs/content/stable/releases/yba-releases/v2025.1.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,14 @@ Before upgrading, review the information in [Prepare to upgrade YugabyteDB Anywh
4949
### Improvements
5050

5151
* Enables setting priority class in Helm chart deployments. PLAT-19874
52+
* Enables viewing details of in-use image bundles in a view-only mode. PLAT-18642
5253
* Adds support for Python versions 3.6 and above, including 3.12, by installing `setuptools` and `pywheel` using `.whl` files and introducing a new flag `use_system_python` for system python usage. Ends script if `venv` isn't settable. PLAT-16111
5354
* Enables runtime modification of `yb.support_bundle.application_logs_regex_pattern`. PLAT-19369
5455
* Enables to configure `application_logs_sdf_pattern` and `application_logs_regex_pattern` at runtime for improved flexibility in generating support bundles, and allows custom prefix setting for support bundle filenames. PLAT-19625
5556
* Enables custom labels on Helm metadata via the `commonLabels` field in Helm overrides for better resource management. PLAT-19491
5657
* Adds Azure IAM integration in the storage configuration UI. PLAT-19502
5758
* Enables Azure AD Workload identity for more secure backups and restores. PLAT-8708
59+
* Increases the default timeout for `SetUniverseReplicationEnabled` RPC to 2 minutes. PLAT-20031
5860

5961
### Bug fixes
6062

@@ -77,6 +79,15 @@ Before upgrading, review the information in [Prepare to upgrade YugabyteDB Anywh
7779
* Resolves error when re-adding previously deleted AZs to a provider configuration. PLAT-19457,PLAT-19003
7880
* Adjusts a configuration data type name from `Regex` to `Raw String` to ensure correctness. PLAT-19865
7981
* Enables customization of `tserver` liveness probes in the Helm chart. PLAT-18285
82+
* Adds check to stop Azure universes from using clockbound to prevent creation failures. PLAT-18912
83+
* Upgrades Go dependencies to patch vulnerabilities across multiple components. PLAT-19147
84+
* Blocks editing of provider settings that alter multi-AZ status during migrations. PLAT-19240
85+
* Upgrades Postgres to version 14.22, fixing multiple CVEs. PLAT-19701
86+
* Corrects the max process limit for YBA-provisioned universes. PLAT-20058
87+
* Enables correct updating of SSH keys in Terraform when modifying related fields. PLAT-20092
88+
* Ensures the 'yugabyte_upgrade' user is utilized during PostgreSQL upgrades in TLS-enabled universes, preventing upgrade failures. PLAT-20145
89+
* Fixes MIME type mismatch for platform configuration, ensuring UI compatibility with strict security policies. PLAT-20147
90+
* Ensures reliability in checking systemd units for versions earlier than 245. PLAT-20243
8091

8192
## v2025.1.3.2 - February 26, 2026 {#v2025.1.3.2}
8293

@@ -141,7 +152,6 @@ This is a YugabyteDB-only release, with no changes to YugabyteDB Anywhere.
141152
* Upgraded Prometheus client library to eliminate warnings caused by duplicate JVM metrics. PLAT-17918
142153
* Simplified systemd handling by removing sudo check and installing service during node-agent installation. PLAT-18881
143154
* Introduces a runtime configuration to allow local user login even when Single Sign-On (SSO) is enabled on YugabyteDB Admin (YBA). This feature is enabled by default, but users have the option to disable it. PLAT-19204
144-
* Increases the default timeout for `SetUniverseReplicationEnabled` RPC to 2 minutes. PLAT-20031
145155

146156
### Bug fixes
147157

@@ -176,15 +186,6 @@ This is a YugabyteDB-only release, with no changes to YugabyteDB Anywhere.
176186
* Refines common label escape hatch to prevent modification of default labels, thereby enhancing stability during universe creation. PLAT-19099
177187
* Fixes node agent installation failure for CSPs on Ubuntu. PLAT-19023
178188
* Fixed Helm formatting issue that occurred when using AWS/GCP exporter in otel-template. PLAT-19169
179-
* Adds check to stop Azure universes from using clockbound to prevent creation failures. PLAT-18912
180-
* Upgrades Go dependencies to patch vulnerabilities across multiple components. PLAT-19147
181-
* Blocks editing of provider settings that alter multi-AZ status during migrations. PLAT-19240
182-
* Upgrades Postgres to version 14.22, fixing multiple CVEs. PLAT-19701
183-
* Corrects the max process limit for YBA-provisioned universes. PLAT-20058
184-
* Enables correct updating of SSH keys in Terraform when modifying related fields. PLAT-20092
185-
* Ensures the 'yugabyte_upgrade' user is utilized during PostgreSQL upgrades in TLS-enabled universes, preventing upgrade failures. PLAT-20145
186-
* Fixes MIME type mismatch for platform configuration, ensuring UI compatibility with strict security policies. PLAT-20147
187-
* Ensures reliability in checking systemd units for versions earlier than 245. PLAT-20243
188189

189190
## v2025.1.2.2 - December 17, 2025 {#v2025.1.2.2}
190191

docs/content/stable/yugabyte-platform/back-up-restore-universes/disaster-recovery/_index.md

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ Video: [Disaster Recovery With xCluster DR and Two Cloud Regions](https://www.yo
5151
href="disaster-recovery-setup/"
5252
icon="fa-thin fa-umbrella">}}
5353

54+
{{</index/block>}}
55+
{{<index/block>}}
56+
5457
{{<index/item
5558
title="Unplanned failover"
5659
body="Fail over to the DR replica in case of an unplanned outage."
@@ -63,12 +66,6 @@ Video: [Disaster Recovery With xCluster DR and Two Cloud Regions](https://www.yo
6366
href="disaster-recovery-switchover/"
6467
icon="fa-thin fa-toggle-on">}}
6568

66-
{{<index/item
67-
title="Add and remove tables and indexes"
68-
body="Perform DDL changes to databases in replication."
69-
href="disaster-recovery-tables/"
70-
icon="fa-thin fa-plus-minus">}}
71-
7269
{{</index/block>}}
7370

7471
## Schema change modes
@@ -81,6 +78,8 @@ xCluster DR can be set up to perform schema changes in the following ways:
8178
| [Semi-automatic](#semi-automatic-mode) | Compared to manual mode, provides operationally simpler setup and management of replication, and fewer steps for performing DDL changes. | v2025.1.0 | v2025.2.1 |
8279
| [Manual](#manual-mode) | Deprecated. Manual setup and management of replication. DDL changes require manually updating the xCluster configuration. | v2024.2 | v2025.1 |
8380

81+
For information on how each mode behaves at the database layer, refer to [xCluster replication](../../../architecture/docdb-replication/async-replication/).
82+
8483
### Automatic mode
8584

8685
In automatic mode, all table and index-level schema changes made to the DR primary universe are automatically replicated to the DR replica.
@@ -89,7 +88,7 @@ You don't need to make any changes to the DR configuration.
8988

9089
Automatic mode is recommended for all new DR configurations. When possible, you should delete existing DR configurations and re-create them using automatic mode to reduce the operational burden of DDL changes.
9190

92-
Automatic mode is used for any xCluster DR configuration when both DR primary and replica are running YugabyteDB {{<release "2025.2.1">}} or later. For earlier versions, semi-automatic mode is used.
91+
By default, automatic mode is used for new DR configurations when both DR primary and replica are running YugabyteDB v2025.2.1 or later. If automatic mode is not used when you create a DR configuration, check the [runtime parameters](#schema-change-mode-runtime-configuration) are set correctly on DR primary.
9392

9493
### Semi-automatic mode
9594

@@ -100,7 +99,7 @@ In this mode, table and index-level schema changes must be performed in the same
10099

101100
You don't need to make any changes to the DR configuration.
102101

103-
Semi-automatic mode is used for any xCluster DR configuration when both DR primary and replica are running YugabyteDB {{<release "2024.1.3">}} to {{<release "2025.2.0">}}.
102+
By default, semi-automatic mode is used for new DR configurations when both DR primary and replica are running YugabyteDB {{<release "2024.1.3">}} to {{<release "2025.2.0">}}. If semi-automatic mode is not used when you create a DR configuration, check the [runtime parameters](#schema-change-mode-runtime-configuration) are set correctly on DR primary.
104103

105104
{{<lead link="https://www.youtube.com/watch?v=vYyn2OUSZFE">}}
106105
To learn more, watch [Simplified schema management with xCluster DB Scoped](https://www.youtube.com/watch?v=vYyn2OUSZFE)
@@ -116,7 +115,30 @@ In manual mode, table and index-level schema changes must be performed on the DR
116115

117116
The exact sequence of these operations for each type of schema change (DDL) is described in [Manage tables and indexes](./disaster-recovery-tables/).
118117

119-
Manual mode is used for any xCluster DR configuration when both DR primary and replica are running YugabyteDB {{<release "2024.1.2">}} or earlier.
118+
By default, Manual mode is used for DR configurations when both DR primary and replica are running YugabyteDB {{<release "2024.1.2">}} or earlier.
119+
120+
### Upgrading schema change mode
121+
122+
If you are running manual mode and you are running a compatible version of YugabyteDB, it is recommended that you upgrade to semi-automatic or automatic mode. Likewise, if you are running semi-automatic mode, it is recommended that you upgrade to automatic mode.
123+
124+
To upgrade schema change mode for an existing DR configuration:
125+
126+
1. [Remove disaster recovery](./disaster-recovery-setup/#remove-disaster-recovery).
127+
1. [Set up a new DR configuration](./disaster-recovery-setup/#set-up-disaster-recovery).
128+
129+
### Schema change mode runtime configuration
130+
131+
When you create a new DR configuration, YugabyteDB Anywhere selects semi-automatic or automatic mode based on the YugabyteDB version _and_ the following universe runtime parameters:
132+
133+
- **Enable xCluster DR Semi-automatic Mode** (config key `yb.xcluster.db_scoped.creationEnabled`)
134+
135+
- **Enable xCluster DR Automatic Mode** (config key `yb.xcluster.db_scoped.automatic_ddl.creationEnabled`)
136+
137+
For new DR configurations, YugabyteDB Anywhere uses automatic mode when both universes are running YugabyteDB {{<release "2025.2.1">}} or later and _both parameters_ are true (the default in {{<release "2025.2.1">}} and later) on the DR primary.
138+
139+
If **Enable xCluster DR Automatic Mode** is `false` while **Enable xCluster DR Semi-automatic Mode** remains `true`, new configurations use semi-automatic mode for supported versions.
140+
141+
To set these options and their default behavior, refer to [Manage runtime configuration settings](../../administer-yugabyte-platform/manage-runtime-config/).
120142

121143
## Upgrading universes in DR
122144

docs/content/stable/yugabyte-platform/back-up-restore-universes/disaster-recovery/disaster-recovery-setup.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Create two universes, the DR primary universe which will serve reads and writes,
2424

2525
Ensure the universes have the following characteristics:
2626

27-
- Both universes are running the same version of YugabyteDB (v2.18.0.0 or later).
27+
- Both universes are running the same version of YugabyteDB (v2.18.0.0 or later). The schema change mode used by your new configuration depends on the version you are running, and runtime configuration. Refer to [Schema change modes](../#schema-change-modes).
2828
- Both universes have the same [encryption in transit](../../../security/enable-encryption-in-transit/) settings. Encryption in transit is recommended, and you should create the DR primary and DR replica universes with TLS enabled.
2929
- They can be backed up and restored using the same [storage configuration](../../configure-backup-storage/).
3030
- They have enough disk space to support storage of write-ahead logs (WALs) in case of a network partition or a temporary outage of the DR replica universe. During these cases, WALs will continue to write until replication is restored. Consider sizing your disk according to your ability to respond and recover from network or other infrastructure outages.

0 commit comments

Comments
 (0)