Don't dereference self on broken_promise

This commit is contained in:
Andrew Noyes 2020-11-11 00:24:23 +00:00
parent ebca63e3c7
commit f467524e06
1 changed files with 4 additions and 2 deletions

View File

@ -621,8 +621,10 @@ ACTOR Future<Void> shardTracker(
wait( delay(0, TaskPriority::DataDistribution) );
}
} catch (Error& e) {
if (e.code() != error_code_actor_cancelled)
self->output.sendError(e); // Propagate failure to dataDistributionTracker
// If e is broken_promise then self may have already been deleted
if (e.code() != error_code_actor_cancelled && e.code() != error_code_broken_promise) {
self->output.sendError(e); // Propagate failure to dataDistributionTracker
}
throw e;
}
}