Skip to content

Commit 5977548

Browse files
authored
Merge branch 'stable-25-1' into changelog/stable-25-1-2025-05-11
2 parents ea5ca9f + 5f292f0 commit 5977548

File tree

1,560 files changed

+38529
-18913
lines changed

Some content is hidden

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

1,560 files changed

+38529
-18913
lines changed

.github/config/muted_ya.txt

Lines changed: 24 additions & 102 deletions
Large diffs are not rendered by default.

.github/docker/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ COPY --from=builder \
4444
EXPOSE ${GRPC_TLS_PORT:-2135}
4545
EXPOSE ${GRPC_PORT:-2136}
4646
EXPOSE ${MON_PORT:-8765}
47+
EXPOSE ${YDB_KAFKA_PROXY_PORT:-9092}
4748

4849
HEALTHCHECK --start-period=60s --interval=1s CMD sh ./health_check
4950

.github/docker/files/initialize_local_ydb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export YDB_GRPC_ENABLE_TLS="true"
77
export GRPC_TLS_PORT=${GRPC_TLS_PORT:-2135}
88
export GRPC_PORT=${GRPC_PORT:-2136}
99
export YDB_GRPC_TLS_DATA_PATH="/ydb_certs"
10+
export YDB_KAFKA_PROXY_PORT=${YDB_KAFKA_PROXY_PORT:-9092}
1011

1112
# Start local_ydb tool. Pass additional arguments for local_ydb
1213
/local_ydb deploy --ydb-working-dir /ydb_data --ydb-binary-path /ydbd --fixed-ports --dont-use-log-files "$@";
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
name: Assign a reviewer for documentation
2+
3+
on:
4+
pull_request_target:
5+
types: [opened]
6+
7+
jobs:
8+
assign-docs-reviewer:
9+
runs-on: ubuntu-latest
10+
if: contains(github.event.pull_request.body, '* Documentation') && !contains(github.event.pull_request.body, '* New feature')
11+
steps:
12+
- name: Assign a random documentation reviewer, excluding the PR author and busy members
13+
uses: actions/github-script@v7
14+
with:
15+
github-token: ${{ secrets.YDBOT_TOKEN }}
16+
script: |
17+
const teamSlug = "primary-docs-reviewers";
18+
const org = "ydb-platform";
19+
20+
// Get team members
21+
const teamMembers = await github.paginate("GET /orgs/{org}/teams/{team_slug}/members", {
22+
org,
23+
team_slug: teamSlug
24+
});
25+
if (teamMembers.length === 0) {
26+
core.setFailed("No team members found in the team.");
27+
}
28+
29+
// Get the PR author
30+
const prAuthor = context.payload.pull_request.user.login;
31+
32+
// Function to check if a user is busy:
33+
// It checks for "busy" in their status message OR if they have limitedAvailability set (checkbox).
34+
async function isBusy(login) {
35+
const query = `
36+
query($login: String!) {
37+
user(login: $login) {
38+
status {
39+
message
40+
indicatesLimitedAvailability
41+
}
42+
}
43+
}
44+
`;
45+
try {
46+
const result = await github.graphql(query, { login });
47+
const status = result.user.status;
48+
if (!status) return false;
49+
// Consider user busy if limitedAvailability is true or message contains "busy"
50+
return status.indicatesLimitedAvailability === true ||
51+
(status.message && status.message.toLowerCase().includes("busy"));
52+
} catch (error) {
53+
console.log(`Error checking status for ${login}: ${error}`);
54+
return false; // On error, assume not busy
55+
}
56+
}
57+
58+
// Filter out the PR author and busy members
59+
const availableMembers = [];
60+
for (const member of teamMembers) {
61+
if (member.login === prAuthor) {
62+
console.log(`Skipping the author ${member.login}.`);
63+
continue;
64+
}
65+
if (await isBusy(member.login)) {
66+
console.log(`Skipping ${member.login} as they appear busy.`);
67+
continue;
68+
}
69+
availableMembers.push(member);
70+
}
71+
72+
if (availableMembers.length === 0) {
73+
core.setFailed("No available team members after excluding PR author and busy members.");
74+
}
75+
76+
// Pick a random available member
77+
const randomIndex = Math.floor(Math.random() * availableMembers.length);
78+
const randomMember = availableMembers[randomIndex].login;
79+
80+
// Get the PR number from the event context
81+
const prNumber = context.payload.pull_request.number;
82+
// Assign the PR to the selected team member
83+
await github.rest.issues.addAssignees({
84+
owner: context.repo.owner,
85+
repo: context.repo.repo,
86+
issue_number: prNumber,
87+
assignees: [randomMember]
88+
});
89+
console.log(`Assigned PR #${prNumber} to ${randomMember}`);

.github/workflows/docs_build.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,4 @@ jobs:
2121
with:
2222
revision: "pr-${{ github.event.pull_request.number }}-${{ github.event.pull_request.head.sha }}"
2323
src-root: "./ydb/docs"
24+
cli-version: stable

.github/workflows/docs_release.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ jobs:
2525
with:
2626
revision: "${{ github.sha }}"
2727
src-root: ${{ vars.SRC_ROOT }}
28+
cli-version: stable
2829

2930
upload:
3031
needs: build

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,18 @@
77
* 16688:Added to set [grpc compression](https://github.com/grpc/grpc/blob/master/doc/compression_cookbook.md) at channel level. [#16688](https://github.com/ydb-platform/ydb/pull/16688) ([Vitalii Gridnev](https://github.com/gridnevvvit))
88
* 18017:Implemented client balancing of partitions when reading using the Kafka protocol (like Kafka itself). Previously, balancing took place on the server. [#18017](https://github.com/ydb-platform/ydb/pull/18017) ([Nikolay Shestakov](https://github.com/nshestakov))
99
* 17734:Added automatic cleanup of temporary tables and directories during export to S3. [#17734](https://github.com/ydb-platform/ydb/pull/17734) ([stanislav_shchetinin](https://github.com/stanislav-shchetinin))
10+
* 18352:Added database audit logs in console's tablet.[#18352](https://github.com/ydb-platform/ydb/pull/18352) ([flown4qqqq](https://github.com/flown4qqqq))
11+
* 18298:Limited the creation of ReassignerActor to only one active instance to prevent [SelfHeal](https://ydb.tech/docs/ru/maintenance/manual/selfheal) from overloading BSC. [#18298](https://github.com/ydb-platform/ydb/pull/18298) ([Sergey Belyakov](https://github.com/serbel324))
12+
* 18294:Changed version format from Year.Major.Minor.Hotfix to Year.Major.Minor.Patch.Hotfix [#18294](https://github.com/ydb-platform/ydb/pull/18294) ([Sergey Belyakov](https://github.com/serbel324))
1013

1114
### Bug fixes
1215

1316
* 18086:Bug fixes for direct read in topics [#18086](https://github.com/ydb-platform/ydb/pull/18086) ([qyryq](https://github.com/qyryq))
1417
* 16797:Fixed altering of max_active_partition property of the topic with YQL query [#16797](https://github.com/ydb-platform/ydb/pull/16797) ([Nikolay Shestakov](https://github.com/nshestakov))
18+
* 18362:Table auto partitioning: Fixed crash when selecting split key from access samples containing a mix of full key and key prefix operations (e.g. exact/range reads). [#18362](https://github.com/ydb-platform/ydb/pull/18362) ([ijon](https://github.com/ijon))
19+
* 18301:Optimized memory usage in transactions with a large number of participants by changing the storage and resending mechanism for TEvReadSet messages. [#18301](https://github.com/ydb-platform/ydb/pull/18301) ([Alek5andr-Kotov](https://github.com/Alek5andr-Kotov))
20+
* 18296:Fixed replication continuing to consume disk space when storage was low, which caused VDisks to become read-only. [#18296](https://github.com/ydb-platform/ydb/pull/18296) ([Sergey Belyakov](https://github.com/serbel324))
21+
* 18231:Fix segfault that could happen while retrying Whiteboard requests. [#18231](https://github.com/ydb-platform/ydb/pull/18231) ([Andrei Rykov](https://github.com/StekPerepolnen))
1522

1623
### Performance
1724

ydb/apps/ydb/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
* Fix `ydb operation get` not working for running operations.
12
* Added `--retries` to `ydb workload <clickbenh|tpch|tpcds> run` command.
23
* Added `--partition-size` param to `ydb workload <clickbench/tpcds/tpch> init`.
34
* Fixed return code of command `ydb workload * run --check-canonical` for the case when benchmark query results differ from canonical ones.

ydb/apps/ydbd/main.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "export.h"
22
#include <ydb/core/driver_lib/run/main.h>
33
#include <ydb/core/security/ticket_parser.h>
4+
#include <ydb/core/transfer/transfer_writer.h>
45
#include <ydb/core/tx/schemeshard/schemeshard_operation_factory.h>
56
#include <ydb/core/ymq/actor/auth_multi_factory.h>
67
#include <ydb/core/ymq/base/events_writer.h>
@@ -23,6 +24,7 @@ int main(int argc, char **argv) {
2324
factories->SqsEventsWriterFactory = std::make_shared<TSqsEventsWriterFactory>();
2425
factories->SchemeOperationFactory.reset(NKikimr::NSchemeShard::DefaultOperationFactory());
2526
factories->ConfigSwissKnife = NKikimr::NYamlConfig::CreateDefaultConfigSwissKnife();
27+
factories->TransferWriterFactory = std::make_shared<NKikimr::NReplication::NTransfer::TTransferWriterFactory>();
2628

2729
return ParameterizedMain(argc, argv, std::move(factories));
2830
}

ydb/core/backup/impl/local_partition_reader.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
#include "local_partition_reader.h"
22
#include "logging.h"
33

4-
#include <ydb/library/actors/core/actor.h>
5-
#include <ydb/library/services/services.pb.h>
6-
74
#include <ydb/core/persqueue/events/global.h>
85
#include <ydb/core/protos/grpc_pq_old.pb.h>
96
#include <ydb/core/tx/replication/service/worker.h>
7+
#include <ydb/core/tx/replication/ydb_proxy/topic_message.h>
8+
#include <ydb/library/actors/core/actor.h>
9+
#include <ydb/library/services/services.pb.h>
1010

1111
using namespace NActors;
1212
using namespace NKikimr::NReplication::NService;
@@ -131,11 +131,11 @@ class TLocalPartitionReader
131131
}
132132

133133
auto gotOffset = Offset;
134-
TVector<TEvWorker::TEvData::TRecord> records(::Reserve(readResult.ResultSize()));
134+
TVector<NReplication::TTopicMessage> records(::Reserve(readResult.ResultSize()));
135135

136136
for (auto& result : readResult.GetResult()) {
137137
gotOffset = std::max(gotOffset, result.GetOffset());
138-
records.emplace_back(result.GetOffset(), GetDeserializedData(result.GetData()).GetData(), TInstant::MilliSeconds(result.GetCreateTimestampMS()), result.GetSourceId(), result.GetSourceId(), result.GetSeqNo());
138+
records.emplace_back(result.GetOffset(), GetDeserializedData(result.GetData()).GetData());
139139
}
140140
SentOffset = gotOffset + 1;
141141

0 commit comments

Comments
 (0)