From 1b26c33a10778ce69815c10049896c6414881be9 Mon Sep 17 00:00:00 2001 From: Vishesh Yadav Date: Fri, 14 Feb 2025 17:00:39 -0800 Subject: [PATCH 1/2] Fix isOnMainThread in Sim2 --- fdbrpc/include/fdbrpc/simulator.h | 1 + fdbrpc/sim2.actor.cpp | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/fdbrpc/include/fdbrpc/simulator.h b/fdbrpc/include/fdbrpc/simulator.h index 5cb7a348445..38dbe92ebe0 100644 --- a/fdbrpc/include/fdbrpc/simulator.h +++ b/fdbrpc/include/fdbrpc/simulator.h @@ -430,6 +430,7 @@ class ISimulator : public INetwork { WipedString makeToken(int64_t tenantId, uint64_t ttlSecondsFromNow); static thread_local ProcessInfo* currentProcess; + static thread_local bool isMainThread; bool checkInjectedCorruption(); diff --git a/fdbrpc/sim2.actor.cpp b/fdbrpc/sim2.actor.cpp index 6c0578c97af..b386ed8db70 100644 --- a/fdbrpc/sim2.actor.cpp +++ b/fdbrpc/sim2.actor.cpp @@ -71,6 +71,7 @@ ISimulator* g_simulator = nullptr; thread_local ISimulator::ProcessInfo* ISimulator::currentProcess = nullptr; +thread_local bool ISimulator::isMainThread = false; ISimulator::ISimulator() : desiredCoordinators(1), physicalDatacenters(1), processesPerMachine(0), listenersPerProcess(1), usableRegions(1), @@ -1401,6 +1402,7 @@ class Sim2 final : public ISimulator, public INetworkConnections { static void runLoop(Sim2* self) { ISimulator::ProcessInfo* callingMachine = self->currentProcess; + ISimulator::isMainThread = true; int lastPrintTime = 0; while (!self->isStopped) { if (self->taskQueue.canSleep()) { @@ -2666,7 +2668,7 @@ class Sim2 final : public ISimulator, public INetworkConnections { PromiseTask* p = new PromiseTask(getCurrentProcess(), std::move(signal)); taskQueue.addReadyThreadSafe(isOnMainThread(), taskID, p); } - bool isOnMainThread() const override { return net2->isOnMainThread(); } + bool isOnMainThread() const override { return ISimulator::isMainThread; } Future onProcess(ISimulator::ProcessInfo* process, TaskPriority taskID) override { return delay(0, taskID, process); } From edae5893924f50076ab90496c243640281587c31 Mon Sep 17 00:00:00 2001 From: Vishesh Yadav Date: Mon, 17 Feb 2025 12:51:17 -0800 Subject: [PATCH 2/2] ignore grpc from other toml files --- tests/rare/AllSimUnitTests.toml | 3 ++- tests/rare/SpecificUnitTests.toml | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/rare/AllSimUnitTests.toml b/tests/rare/AllSimUnitTests.toml index 5509fd8b4b8..00a9617c7b4 100644 --- a/tests/rare/AllSimUnitTests.toml +++ b/tests/rare/AllSimUnitTests.toml @@ -6,4 +6,5 @@ startDelay = 0 [[test.workload]] testName = 'UnitTests' #maxTestCases = 1 - testsMatching = '/' \ No newline at end of file + testsMatching = '/' + testsIgnored = '/fdbrpc/grpc' \ No newline at end of file diff --git a/tests/rare/SpecificUnitTests.toml b/tests/rare/SpecificUnitTests.toml index 8db7be7bf5d..1ce4bcdcf73 100644 --- a/tests/rare/SpecificUnitTests.toml +++ b/tests/rare/SpecificUnitTests.toml @@ -12,3 +12,4 @@ runSetup=false testName = 'UnitTests' maxTestCases = 1 testsMatching = '/' + testsIgnored='/fdbrpc/grpc'