Skip to content

Commit 90fc1c6

Browse files
authored
Merge branch 'stable-25-1' into changelog/stable-25-1-2025-05-25
2 parents 0a2ec2e + 3213f8d commit 90fc1c6

File tree

1,362 files changed

+29988
-17480
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,362 files changed

+29988
-17480
lines changed

.github/config/muted_ya.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ ydb/core/kqp/ut/olap KqpOlapWrite.TierDraftsGCWithRestart
4646
ydb/core/kqp/ut/olap [*/*] chunk chunk
4747
ydb/core/kqp/ut/query KqpAnalyze.AnalyzeTable+ColumnStore
4848
ydb/core/kqp/ut/query KqpAnalyze.AnalyzeTable-ColumnStore
49+
ydb/core/kqp/ut/query KqpLimits.StreamWrite+Allowed
4950
ydb/core/kqp/ut/query KqpStats.DeferredEffects+UseSink
5051
ydb/core/kqp/ut/query KqpStats.SysViewClientLost
5152
ydb/core/kqp/ut/scheme KqpOlapScheme.TenThousandColumns

.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: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@
33
### Functionality
44

55
* 17114:Improved audit logging for user management operations. The audit logs now include details about user modification actions such as password changes, user blocking, and unblocking, making it easier to troubleshoot login issues. [#17114](https://github.com/ydb-platform/ydb/pull/17114) ([flown4qqqq](https://github.com/flown4qqqq))
6+
* 17691:New UI handler for fetching data from topics. [#17691](https://github.com/ydb-platform/ydb/pull/17691) ([FloatingCrowbar](https://github.com/FloatingCrowbar))
7+
* 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))
8+
* 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))
9+
* 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))
613

714
### Bug fixes
815

@@ -12,3 +19,14 @@
1219
* 18620:[Fixed](https://github.com/ydb-platform/ydb/pull/18620) a [bug](https://github.com/ydb-platform/ydb/issues/16462) that caused tablet downloads to pause due to tablets that could not allowed to be launched. ([vporyadke](https://github.com/vporyadke))
1320
* 18581:[Fixed](https://github.com/ydb-platform/ydb/pull/18577) typing [errors](https://github.com/ydb-platform/ydb/issues/18487) in UDF. ([Filitov Mikhail](https://github.com/lll-phill-lll))
1421
* 18377:[Fixed](https://github.com/ydb-platform/ydb/pull/18377) [a bug](https://github.com/ydb-platform/ydb/issues/16000) for handling per-dc followers created on older YDB versions. ([vporyadke](https://github.com/vporyadke))
22+
* 18086:Bug fixes for direct read in topics [#18086](https://github.com/ydb-platform/ydb/pull/18086) ([qyryq](https://github.com/qyryq))
23+
* 16797:Fixed an issue with topic auto-partitioning when the `max_active_partition` configuration parameter was set via the `ALTER TOPIC` statement. [#16797](https://github.com/ydb-platform/ydb/pull/16797) ([Nikolay Shestakov](https://github.com/nshestakov))
24+
* 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))
25+
* 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))
26+
* 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))
27+
* 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))
28+
29+
### Performance
30+
31+
* 17712:Introduced Intersect, Add and IsEmpty operations to Roaring UDF. [#17712](https://github.com/ydb-platform/ydb/pull/17712) ([jsjant](https://github.com/jsjant))
32+
* 17578:Added naive bulk And to Roaring UDF. [#17578](https://github.com/ydb-platform/ydb/pull/17578) ([jsjant](https://github.com/jsjant)

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)