check serverList before update storage metadata (#10540)

This commit is contained in:
Xiaoxi Wang 2023-06-22 12:02:09 -07:00 committed by GitHub
parent 356d0030a4
commit 7d3cc86860
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 2 deletions

View File

@ -2958,8 +2958,18 @@ public:
loop {
try {
tr->setOption(FDBTransactionOptions::ACCESS_SYSTEM_KEYS);
Optional<Value> serverInterfaceValue = wait(tr->get(serverListKeyFor(server->getId())));
// The storage server is removed
if (!serverInterfaceValue.present()) {
TraceEvent("UpdateStorageMetadataNoOp", self->getDistributorId())
.detail("Server", server->getId())
.detail("IsTss", isTss)
.detail("Reason", "Absent server list item");
return Void();
}
Optional<StorageMetadataType> metadata = wait(metadataMap.get(tr, server->getId()));
// NOTE: in upgrade testing, there may not be any metadata
// TODO: change to ASSERT(metadata.present()) in a release version only supports upgrade from 71.3
if (metadata.present()) {
data.createdTime = metadata.get().createdTime;
}

View File

@ -2183,7 +2183,9 @@ ACTOR Future<std::pair<Version, Tag>> addStorageServer(Database cx, StorageServe
tr->set(serverListKeyFor(server.id()), serverListValue(server));
wait(tr->commit());
TraceEvent("AddedStorageServerSystemKey").detail("ServerID", server.id());
TraceEvent("AddedStorageServerSystemKey")
.detail("ServerID", server.id())
.detail("CommitVersion", tr->getCommittedVersion());
return std::make_pair(tr->getCommittedVersion(), tag);
} catch (Error& e) {
@ -2337,7 +2339,10 @@ ACTOR Future<Void> removeStorageServer(Database cx,
retry = true;
wait(tr->commit());
TraceEvent("RemoveStorageServer").detail("State", "Success").detail("ServerID", serverID);
TraceEvent("RemoveStorageServer")
.detail("State", "Success")
.detail("ServerID", serverID)
.detail("CommitVersion", tr->getCommittedVersion());
return Void();
}
} catch (Error& e) {