aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkruall <kruall@ydb.tech>2022-10-12 18:16:28 +0300
committerkruall <kruall@ydb.tech>2022-10-12 18:16:28 +0300
commit8909b817625dffa3f87d76eb5854a89040785ddc (patch)
treefea4071bedadbb5433b78b13655a179a02e69821
parent46c1dd8bb937c8d5c4eacd6b836beb567dccae19 (diff)
downloadydb-8909b817625dffa3f87d76eb5854a89040785ddc.tar.gz
Fix http wipe request,
-rw-r--r--ydb/core/mind/bscontroller/config.cpp26
-rw-r--r--ydb/core/mind/bscontroller/config_cmd.cpp2
-rw-r--r--ydb/core/mind/bscontroller/drop_donor.cpp2
-rw-r--r--ydb/core/mind/bscontroller/impl.h2
-rw-r--r--ydb/core/mind/bscontroller/node_report.cpp2
-rw-r--r--ydb/core/mind/bscontroller/register_node.cpp2
-rw-r--r--ydb/core/mind/bscontroller/virtual_group.cpp6
-rw-r--r--ydb/core/protos/blobstorage_config.proto3
8 files changed, 26 insertions, 19 deletions
diff --git a/ydb/core/mind/bscontroller/config.cpp b/ydb/core/mind/bscontroller/config.cpp
index f5493b01f1..d4d7dbcb6d 100644
--- a/ydb/core/mind/bscontroller/config.cpp
+++ b/ydb/core/mind/bscontroller/config.cpp
@@ -258,7 +258,8 @@ namespace NKikimr::NBsController {
};
bool TBlobStorageController::CommitConfigUpdates(TConfigState& state, bool suppressFailModelChecking,
- bool suppressDegradedGroupsChecking, TTransactionContext& txc, TString *errorDescription) {
+ bool suppressDegradedGroupsChecking, bool suppressDisintegratedGroupsChecking,
+ TTransactionContext& txc, TString *errorDescription) {
NIceDb::TNiceDb db(txc.DB);
for (auto&& [base, overlay] : state.Groups.Diff()) {
@@ -275,16 +276,19 @@ namespace NKikimr::NBsController {
}
}
- for (auto&& [base, overlay] : state.Groups.Diff()) {
- if (base && overlay->second) {
- const TGroupInfo::TGroupStatus& prev = base->second->Status;
- const TGroupInfo::TGroupStatus& status = overlay->second->Status;
- if (status.ExpectedStatus == NKikimrBlobStorage::TGroupStatus::DISINTEGRATED &&
- status.ExpectedStatus != prev.ExpectedStatus) { // status did really change
- *errorDescription = TStringBuilder() << "GroupId# " << overlay->first
- << " ExpectedStatus# DISINTEGRATED";
- return false;
- }
+ if (!suppressDisintegratedGroupsChecking) {
+ for (auto&& [base, overlay] : state.Groups.Diff()) {
+ if (base && overlay->second) {
+ const TGroupInfo::TGroupStatus& prev = base->second->Status;
+ const TGroupInfo::TGroupStatus& status = overlay->second->Status;
+ Cerr << '!' << NKikimrBlobStorage::TGroupStatus::E_Name(status.ExpectedStatus) << ' ' << NKikimrBlobStorage::TGroupStatus::E_Name(prev.ExpectedStatus) << Endl;
+ if (status.ExpectedStatus == NKikimrBlobStorage::TGroupStatus::DISINTEGRATED &&
+ status.ExpectedStatus != prev.ExpectedStatus) { // status did really change
+ *errorDescription = TStringBuilder() << "GroupId# " << overlay->first
+ << " ExpectedStatus# DISINTEGRATED";
+ return false;
+ }
+ }
}
}
diff --git a/ydb/core/mind/bscontroller/config_cmd.cpp b/ydb/core/mind/bscontroller/config_cmd.cpp
index 5bd83cc679..02aa1828b0 100644
--- a/ydb/core/mind/bscontroller/config_cmd.cpp
+++ b/ydb/core/mind/bscontroller/config_cmd.cpp
@@ -246,7 +246,7 @@ namespace NKikimr::NBsController {
const bool doLogCommand = Success && State->Changed();
Success = Success && Self->CommitConfigUpdates(*State, Cmd.GetIgnoreGroupFailModelChecks(),
- Cmd.GetIgnoreDegradedGroupsChecks(), txc, &Error);
+ Cmd.GetIgnoreDegradedGroupsChecks(), Cmd.GetIgnoreDisintegratedGroupsChecks(), txc, &Error);
Finish();
if (doLogCommand) {
diff --git a/ydb/core/mind/bscontroller/drop_donor.cpp b/ydb/core/mind/bscontroller/drop_donor.cpp
index a445e7a9eb..554490ab25 100644
--- a/ydb/core/mind/bscontroller/drop_donor.cpp
+++ b/ydb/core/mind/bscontroller/drop_donor.cpp
@@ -28,7 +28,7 @@ public:
}
State->CheckConsistency();
TString error;
- if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, txc, &error)) {
+ if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, false, txc, &error)) {
State->Rollback();
State.reset();
}
diff --git a/ydb/core/mind/bscontroller/impl.h b/ydb/core/mind/bscontroller/impl.h
index 0eb892d1cf..e942284dce 100644
--- a/ydb/core/mind/bscontroller/impl.h
+++ b/ydb/core/mind/bscontroller/impl.h
@@ -1479,7 +1479,7 @@ private:
void UpdateSystemViews();
bool CommitConfigUpdates(TConfigState& state, bool suppressFailModelChecking, bool suppressDegradedGroupsChecking,
- TTransactionContext& txc, TString *errorDescription);
+ bool suppressDisintegratedGroupsChecking, TTransactionContext& txc, TString *errorDescription);
void CommitSelfHealUpdates(TConfigState& state);
void CommitScrubUpdates(TConfigState& state, TTransactionContext& txc);
diff --git a/ydb/core/mind/bscontroller/node_report.cpp b/ydb/core/mind/bscontroller/node_report.cpp
index efb029b7e2..083f8b55df 100644
--- a/ydb/core/mind/bscontroller/node_report.cpp
+++ b/ydb/core/mind/bscontroller/node_report.cpp
@@ -76,7 +76,7 @@ public:
State->CheckConsistency();
TString error;
- if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, txc, &error)) {
+ if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, false, txc, &error)) {
State->Rollback();
State.reset();
}
diff --git a/ydb/core/mind/bscontroller/register_node.cpp b/ydb/core/mind/bscontroller/register_node.cpp
index 7479b8b16e..44ca2510a3 100644
--- a/ydb/core/mind/bscontroller/register_node.cpp
+++ b/ydb/core/mind/bscontroller/register_node.cpp
@@ -169,7 +169,7 @@ public:
Response = std::make_unique<IEventHandle>(MakeBlobStorageNodeWardenID(nodeId), Self->SelfId(), result.release(), 0, 0);
TString error;
- if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, txc, &error)) {
+ if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, false, txc, &error)) {
State->Rollback();
State.reset();
}
diff --git a/ydb/core/mind/bscontroller/virtual_group.cpp b/ydb/core/mind/bscontroller/virtual_group.cpp
index b057b80bf1..11771bb405 100644
--- a/ydb/core/mind/bscontroller/virtual_group.cpp
+++ b/ydb/core/mind/bscontroller/virtual_group.cpp
@@ -209,7 +209,7 @@ namespace NKikimr::NBsController {
}
State->CheckConsistency();
TString error;
- if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, txc, &error)) {
+ if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, false, txc, &error)) {
State->Rollback();
State.reset();
}
@@ -349,7 +349,7 @@ namespace NKikimr::NBsController {
ConfigureBlobDepot();
}
-
+
void ConfigureBlobDepot() {
TGroupInfo *group = GetGroup();
const ui64 tabletId = group->BlobDepotId.GetOrElse(BlobDepotTabletId);
@@ -474,7 +474,7 @@ namespace NKikimr::NBsController {
Action(*State);
State->CheckConsistency();
TString error;
- if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, txc, &error)) {
+ if (State->Changed() && !Self->CommitConfigUpdates(*State, false, false, false, txc, &error)) {
State->Rollback();
State.reset();
}
diff --git a/ydb/core/protos/blobstorage_config.proto b/ydb/core/protos/blobstorage_config.proto
index 350f611d06..830d9c2ccd 100644
--- a/ydb/core/protos/blobstorage_config.proto
+++ b/ydb/core/protos/blobstorage_config.proto
@@ -544,6 +544,9 @@ message TConfigRequest {
// ignore degraded groups checking
bool IgnoreDegradedGroupsChecks = 8;
+ // ignore disintegrated groups checking
+ bool IgnoreDisintegratedGroupsChecks = 11;
+
// do not settle slots over non-operating PDisks
bool SettleOnlyOnOperationalDisks = 9;