Skip to content

Commit a44518d

Browse files
authored
Fix segfault in Group Layout Sanitizer (#15923)
1 parent df8b732 commit a44518d

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

ydb/core/mind/bscontroller/group_mapper.cpp

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -795,15 +795,17 @@ namespace NKikimr::NBsController {
795795
}
796796

797797
for (ui32 orderNum = 0; orderNum < group.size(); ++orderNum) {
798-
const TVDiskIdShort vdisk = Topology.GetVDiskId(orderNum);
799-
ui32 pRealm = group[orderNum]->Position.Realm.Index();
800-
ui32 desiredPRealm = RealmNavigator[vdisk.FailRealm];
801-
if (pRealm != desiredPRealm) {
802-
if (realmOccupation[pRealm].size() > 1) {
803-
// disks from different fail realms in one Realm present
804-
failDetected(EFailLevel::REALM_FAIL, orderNum);
805-
} else {
806-
failDetected(EFailLevel::MULTIPLE_REALM_OCCUPATION, orderNum);
798+
if (group[orderNum]) {
799+
const TVDiskIdShort vdisk = Topology.GetVDiskId(orderNum);
800+
ui32 pRealm = group[orderNum]->Position.Realm.Index();
801+
ui32 desiredPRealm = RealmNavigator[vdisk.FailRealm];
802+
if (pRealm != desiredPRealm) {
803+
if (realmOccupation[pRealm].size() > 1) {
804+
// disks from different fail realms in one Realm present
805+
failDetected(EFailLevel::REALM_FAIL, orderNum);
806+
} else {
807+
failDetected(EFailLevel::MULTIPLE_REALM_OCCUPATION, orderNum);
808+
}
807809
}
808810
}
809811
}

0 commit comments

Comments
 (0)