Skip to content

Commit

Permalink
EventEngine: fix callers of Run() and RunAfter() to create ExecCtx (#…
Browse files Browse the repository at this point in the history
…31047) (#31066)

Co-authored-by: Mark D. Roth <roth@google.com>
  • Loading branch information
veblush and markdroth committed Sep 20, 2022
1 parent 1d3b820 commit e80c144
Show file tree
Hide file tree
Showing 8 changed files with 25 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,6 @@ class GrpcLb : public LoadBalancingPolicy {
void SendClientLoadReportLocked();

// EventEngine callbacks
void MaybeSendClientLoadReport();
void MaybeSendClientLoadReportLocked();

static void ClientLoadReportDone(void* arg, grpc_error_handle error);
Expand Down Expand Up @@ -996,15 +995,11 @@ void GrpcLb::BalancerCallState::ScheduleNextClientLoadReportLocked() {
GetDefaultEventEngine()->RunAfter(client_stats_report_interval_, [this] {
ApplicationCallbackExecCtx callback_exec_ctx;
ExecCtx exec_ctx;
MaybeSendClientLoadReport();
grpclb_policy()->work_serializer()->Run(
[this] { MaybeSendClientLoadReportLocked(); }, DEBUG_LOCATION);
});
}

void GrpcLb::BalancerCallState::MaybeSendClientLoadReport() {
grpclb_policy()->work_serializer()->Run(
[this] { MaybeSendClientLoadReportLocked(); }, DEBUG_LOCATION);
}

void GrpcLb::BalancerCallState::MaybeSendClientLoadReportLocked() {
client_load_report_handle_.reset();
if (this != grpclb_policy()->lb_calld_.get()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
#include "src/core/lib/gprpp/ref_counted_ptr.h"
#include "src/core/lib/gprpp/time.h"
#include "src/core/lib/gprpp/work_serializer.h"
#include "src/core/lib/iomgr/exec_ctx.h"
#include "src/core/lib/iomgr/pollset_set.h"
#include "src/core/lib/json/json.h"
#include "src/core/lib/load_balancing/lb_policy.h"
Expand Down Expand Up @@ -456,6 +457,8 @@ WeightedTargetLb::WeightedChild::DelayedRemovalTimer::DelayedRemovalTimer(
: weighted_child_(std::move(weighted_child)) {
timer_handle_ = GetDefaultEventEngine()->RunAfter(
kChildRetentionInterval, [self = Ref()]() mutable {
ApplicationCallbackExecCtx app_exec_ctx;
ExecCtx exec_ctx;
self->weighted_child_->weighted_target_policy_->work_serializer()->Run(
[self = std::move(self)] { self->OnTimerLocked(); },
DEBUG_LOCATION);
Expand Down
4 changes: 4 additions & 0 deletions src/core/lib/iomgr/resolve_address_posix.cc
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,8 @@ DNSResolver::TaskHandle NativeDNSResolver::LookupSRV(
grpc_pollset_set* /* interested_parties */,
absl::string_view /* name_server */) {
GetDefaultEventEngine()->Run([on_resolved] {
ApplicationCallbackExecCtx app_exec_ctx;
ExecCtx exec_ctx;
on_resolved(absl::UnimplementedError(
"The Native resolver does not support looking up SRV records"));
});
Expand All @@ -197,6 +199,8 @@ DNSResolver::TaskHandle NativeDNSResolver::LookupTXT(
absl::string_view /* name_server */) {
// Not supported
GetDefaultEventEngine()->Run([on_resolved] {
ApplicationCallbackExecCtx app_exec_ctx;
ExecCtx exec_ctx;
on_resolved(absl::UnimplementedError(
"The Native resolver does not support looking up TXT records"));
});
Expand Down
4 changes: 4 additions & 0 deletions src/core/lib/iomgr/resolve_address_windows.cc
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,8 @@ DNSResolver::TaskHandle NativeDNSResolver::LookupSRV(
grpc_pollset_set* /* interested_parties */,
absl::string_view /* name_server */) {
GetDefaultEventEngine()->Run([on_resolved] {
ApplicationCallbackExecCtx app_exec_ctx;
ExecCtx exec_ctx;
on_resolved(absl::UnimplementedError(
"The Native resolver does not support looking up SRV records"));
});
Expand All @@ -181,6 +183,8 @@ DNSResolver::TaskHandle NativeDNSResolver::LookupTXT(
absl::string_view /* name_server */) {
// Not supported
GetDefaultEventEngine()->Run([on_resolved] {
ApplicationCallbackExecCtx app_exec_ctx;
ExecCtx exec_ctx;
on_resolved(absl::UnimplementedError(
"The Native resolver does not support looking up TXT records"));
});
Expand Down
2 changes: 0 additions & 2 deletions src/cpp/server/orca/orca_service.cc
Original file line number Diff line number Diff line change
Expand Up @@ -123,8 +123,6 @@ class OrcaService::Reactor : public ServerWriteReactor<ByteBuffer>,
}

bool MaybeScheduleTimer() {
grpc_core::ApplicationCallbackExecCtx callback_exec_ctx;
grpc_core::ExecCtx exec_ctx;
grpc::internal::MutexLock lock(&timer_mu_);
if (cancelled_) return false;
timer_handle_ = GetDefaultEventEngine()->RunAfter(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,8 @@ class TestDNSResolver : public grpc_core::DNSResolver {
grpc_pollset_set* /* interested_parties */,
absl::string_view /* name_server */) override {
GetDefaultEventEngine()->Run([on_resolved] {
grpc_core::ApplicationCallbackExecCtx app_exec_ctx;
grpc_core::ExecCtx exec_ctx;
on_resolved(absl::UnimplementedError(
"The Testing DNS resolver does not support looking up SRV records"));
});
Expand All @@ -127,6 +129,8 @@ class TestDNSResolver : public grpc_core::DNSResolver {
absl::string_view /* name_server */) override {
// Not supported
GetDefaultEventEngine()->Run([on_resolved] {
grpc_core::ApplicationCallbackExecCtx app_exec_ctx;
grpc_core::ExecCtx exec_ctx;
on_resolved(absl::UnimplementedError(
"The Testing DNS resolver does not support looking up TXT records"));
});
Expand Down
4 changes: 4 additions & 0 deletions test/core/end2end/fuzzers/api_fuzzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,8 @@ class FuzzerDNSResolver : public grpc_core::DNSResolver {
grpc_pollset_set* /* interested_parties */,
absl::string_view /* name_server */) override {
GetDefaultEventEngine()->Run([on_resolved] {
grpc_core::ApplicationCallbackExecCtx app_exec_ctx;
grpc_core::ExecCtx exec_ctx;
on_resolved(absl::UnimplementedError(
"The Fuzzing DNS resolver does not support looking up SRV records"));
});
Expand All @@ -219,6 +221,8 @@ class FuzzerDNSResolver : public grpc_core::DNSResolver {
absl::string_view /* name_server */) override {
// Not supported
GetDefaultEventEngine()->Run([on_resolved] {
grpc_core::ApplicationCallbackExecCtx app_exec_ctx;
grpc_core::ExecCtx exec_ctx;
on_resolved(absl::UnimplementedError(
"The Fuzing DNS resolver does not support looking up TXT records"));
});
Expand Down
4 changes: 4 additions & 0 deletions test/core/end2end/goaway_server_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,8 @@ class TestDNSResolver : public grpc_core::DNSResolver {
grpc_pollset_set* /* interested_parties */,
absl::string_view /* name_server */) override {
GetDefaultEventEngine()->Run([on_resolved] {
grpc_core::ApplicationCallbackExecCtx app_exec_ctx;
grpc_core::ExecCtx exec_ctx;
on_resolved(absl::UnimplementedError(
"The Testing DNS resolver does not support looking up SRV records"));
});
Expand All @@ -128,6 +130,8 @@ class TestDNSResolver : public grpc_core::DNSResolver {
absl::string_view /* name_server */) override {
// Not supported
GetDefaultEventEngine()->Run([on_resolved] {
grpc_core::ApplicationCallbackExecCtx app_exec_ctx;
grpc_core::ExecCtx exec_ctx;
on_resolved(absl::UnimplementedError(
"The Testing DNS resolver does not support looking up TXT records"));
});
Expand Down

0 comments on commit e80c144

Please sign in to comment.