Skip to content

Commit 5de4046

Browse files
authored
Merge branch 'stable-25-1' into changelog/stable-25-1-2025-06-01
2 parents e841d31 + 158e9f6 commit 5de4046

File tree

1,196 files changed

+24007
-14514
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,196 files changed

+24007
-14514
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: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,29 @@
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))
610
* 18352:Added database audit logs in console's tablet.[#18352](https://github.com/ydb-platform/ydb/pull/18352) ([flown4qqqq](https://github.com/flown4qqqq))
711
* 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))
812
* 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))
913
* 19056:fixed "Failed to set up listener on port 9092 errno# 98 (Address already in use)" [#19056](https://github.com/ydb-platform/ydb/pull/19056) ([Nikolay Shestakov](https://github.com/nshestakov))
1014

1115
### Bug fixes
1216

13-
* 17313:Fixed CopyTable operation to allow copying tables with all column types present in the source table, regardless of feature flag settings. This resolves an issue where copying tables with certain decimal types would fail after version downgrades. [#17313](https://github.com/ydb-platform/ydb/pull/17313) ([azevaykin](https://github.com/azevaykin))
14-
* 17122:Fixed an rare issue that caused client applications to hang during commit operations. The problem occurred because the `TEvDeletePartition` message could arrive before the `TEvApproveWriteQuota` message. The batch did not send TEvConsumed and this blocked the queue of write quota requests. [#17122](https://github.com/ydb-platform/ydb/pull/17122) ([Alek5andr-Kotov](https://github.com/Alek5andr-Kotov))
17+
* 18647:[Fixed](https://github.com/ydb-platform/ydb/pull/18647) an [issue](https://github.com/ydb-platform/ydb/issues/17885) where the index type was incorrectly defaulting to GLOBAL SYNC when UNIQUE was explicitly specified in the query. ([Vasily Gerasimov](https://github.com/UgnineSirdis))
18+
* 18086:Bug fixes for direct read in topics [#18086](https://github.com/ydb-platform/ydb/pull/18086) ([qyryq](https://github.com/qyryq))
19+
* 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))
1520
* 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))
16-
* 18301:Optimized memory usage in transactions with a large number of participants by changing the storage and resending mechanism for TEvReadSet messages. [#18302](https://github.com/ydb-platform/ydb/pull/18301) ([Alek5andr-Kotov](https://github.com/Alek5andr-Kotov))
1721
* 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))
18-
* 18271:Fix replication bug #10650 [#18271](https://github.com/ydb-platform/ydb/pull/18271) ([Alexander Rutkovsky](https://github.com/alexvru))
1922
* 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))
20-
* 19012:fix low performance in stream lookup on many reads https://github.com/ydb-platform/ydb/issues/19010
21-
add simple overload logic https://github.com/ydb-platform/ydb/issues/19011 [#19012](https://github.com/ydb-platform/ydb/pull/19012) ([Vitalii Gridnev](https://github.com/gridnevvvit))
2223
* 18938:In the table description columns are returned in the same order as they were specified in CREATE TABLE. [#18938](https://github.com/ydb-platform/ydb/pull/18938) ([Ilnaz Nizametdinov](https://github.com/CyberROFL))
23-
* 18794:Move changes from #18614
24+
* 18794:[Fixed](https://github.com/db-platform/adb/pull/18794) a rare [bug](https://github.com/ydb-platform/ydb/issues/18615) with PQ tablet restarts. [#18794](https://github.com/ydb-platform/ydb/pull/18794) ([Alek5andr-Kotov](https://github.com/Alek5andr-Kotov))
2425

25-
Issue #18615
26+
=======
2627

27-
Temporarily removed the checks for `StartOffset` and `EndOffset` at the start of the partition actor. [#18794](https://github.com/ydb-platform/ydb/pull/18794) ([Alek5andr-Kotov](https://github.com/Alek5andr-Kotov))
28+
### Performance
2829

30+
* 17712:Introduced Intersect, Add and IsEmpty operations to Roaring UDF. [#17712](https://github.com/ydb-platform/ydb/pull/17712) ([jsjant](https://github.com/jsjant))
31+
* 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)