Avoid using an invalid tenant when creating a transaction from a tenant ID in SS

This commit is contained in:
A.J. Beamon 2023-01-23 09:51:15 -08:00
parent 5a973e7d0f
commit c1333556a9
1 changed files with 8 additions and 2 deletions

View File

@ -3652,7 +3652,10 @@ ACTOR Future<GetValueReqAndResultRef> quickGetValue(StorageServer* data,
++data->counters.quickGetValueMiss;
if (SERVER_KNOBS->QUICK_GET_VALUE_FALLBACK) {
state Transaction tr(data->cx, makeReference<Tenant>(pOriginalReq->tenantInfo.tenantId));
Optional<Reference<Tenant>> tenant = pOriginalReq->tenantInfo.hasTenant()
? makeReference<Tenant>(pOriginalReq->tenantInfo.tenantId)
: Optional<Reference<Tenant>>();
state Transaction tr(data->cx, tenant);
tr.setVersion(version);
// TODO: is DefaultPromiseEndpoint the best priority for this?
tr.trState->taskID = TaskPriority::DefaultPromiseEndpoint;
@ -4317,7 +4320,10 @@ ACTOR Future<GetRangeReqAndResultRef> quickGetKeyValues(
++data->counters.quickGetKeyValuesMiss;
if (SERVER_KNOBS->QUICK_GET_KEY_VALUES_FALLBACK) {
state Transaction tr(data->cx, makeReference<Tenant>(pOriginalReq->tenantInfo.tenantId));
Optional<Reference<Tenant>> tenant = pOriginalReq->tenantInfo.hasTenant()
? makeReference<Tenant>(pOriginalReq->tenantInfo.tenantId)
: Optional<Reference<Tenant>>();
state Transaction tr(data->cx, tenant);
tr.setVersion(version);
if (pOriginalReq->options.present() && pOriginalReq->options.get().debugID.present()) {
tr.debugTransaction(pOriginalReq->options.get().debugID.get());