AJ Heller
36a1e0dd5e
[fixit] Remove absl::Now() from sensitive EventEngine timer_test ( #30628 )
...
absl::Now() is not guaranteed to be monotonic, and we are seeing some
potential time travel at different rates on different machines. I've
replaced the most sensitive pieces with std::chrono::steady_clock to see
if that fixes the flakes we are seeing.
2 years ago
Craig Tiller
979f8c150d
[fixit] Make test more robust ( #30585 )
2 years ago
AJ Heller
d025c1732f
Revert "Reland: Make GetDefaultEventEngine return a shared_ptr ( #30563 )" ( #30573 )
...
This reverts commit ee7c0a8e4c
.
2 years ago
Vignesh Babu
009dadbb74
Fork iomgr traced buffer list implementation for posix event engine ( #30539 )
...
* Forking iomgr internal_errqueue defines for posix event engine
* fix BUILD file
* start
* update
* sanity
* regenerate_projects
* Automated change: Fix sanity tests
* review comments
* review comments
* Automated change: Fix sanity tests
* fix BUILD
* add no_windows tag
* minor typo
* typo
* review comments
* regenerate projects
* fix BUILD issue
* iwyu fixes
Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
2 years ago
AJ Heller
ee7c0a8e4c
Reland: Make GetDefaultEventEngine return a shared_ptr ( #30563 )
...
* Reland: "Make GetDefaultEventEngine return a shared_ptr (#30280 )"
This reverts commit 45959e7cc1
.
* Attempted fix with NoDestruct
* Not a process-wide singleton for the type. Just a NonDestruct
* fix
2 years ago
Cheng-Yu Chung
543b290203
Build Target Reorganization Part 1 ( #30518 )
...
* Clean up gpr_base
* Remove `avoid_dep` for target `gpr`
* Add alias `gpr_base` for `gpr` for compatibility
* Fix tool error
* Update
* Remove temporary `gpr_base`
* Remove unused `alt_gpr_base_legacy`
2 years ago
AJ Heller
45959e7cc1
Revert "Make GetDefaultEventEngine return a shared_ptr ( #30280 )" ( #30558 )
...
This reverts commit 4df74f2b4c
.
2 years ago
AJ Heller
4df74f2b4c
Make GetDefaultEventEngine return a shared_ptr ( #30280 )
...
This works around valgrind memory leaks by giving EventEngines a fixed
lifetime. We eventually want ref-counted EventEngines internally, so this is
a step in the right direction as well.
2 years ago
Craig Tiller
9cbedfe66f
[sleep] Fix use after free discovered by fuzzer ( #30542 )
...
* minimized crash
* [sleep] Fix use after free discovered by fuzzer
2 years ago
AJ Heller
0c5b6171ad
EventEngine Forkables ( #30473 )
...
A (currently) pthread_atfork-based fork support mechanism, allowing EventEngines - or any other object that wants to implement the Forkable interface - respond to forks.
2 years ago
AJ Heller
8f5300b95d
Rename the default EventEngine headers ( #30528 )
...
* Rename the default EventEngine headers
Small cleanup. This code hasn't been related to factories for a month or
two.
* ensure only one target contains default_event_engine.h
* src + hdr in same target
* include guards
2 years ago
Craig Tiller
2cb58b9565
[build] Auto-deps for test/core/resource_quota ( #30430 )
...
* [build] Auto-deps for test/core/resource_quota
* fix
* fix
* Automated change: Fix sanity tests
* fixes
* Automated change: Fix sanity tests
* fix
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2 years ago
Vignesh Babu
0b1a8c984b
Revert "Modifying iomgr tcp code to use event engine EndpointConfig instead of channel_args ( #30028 )" ( #30495 )
...
This reverts commit 2c977a4d98
.
2 years ago
AJ Heller
c752a6b25e
Reland: Windows IOCP implementation for the WindowsEventEngine ( #30480 )
...
Reverts #30466 , relanding #30389 . Requires a cherrypick.
2 years ago
Vignesh Babu
2c977a4d98
Modifying iomgr tcp code to use event engine EndpointConfig instead of channel_args ( #30028 )
...
* convert tcp code to use EndpointConfig and successfully compile
* regenerate projects
* copying config options used in tcp code to create map backed endpoint configs
* fix minor build issues
* fix includes in tests
* fix some build and test issues
* modifying endpoint config definition from an abstract interface into a concrete implementation
* minor fix
* add unreachable code check
* fix some windows build issues
* fix more build issues
* adding a grpc_tcp_generic_options struct to hold data extracted from EndpointConfig
* code formatting
* simplify
* fix sanity checks
* fix windows issues
* some posix fixes
* disabling copy constructor and copy assignment operator for endpoint config
* fix sanity checks
* fix syntax error
* fix weird formatting
* fix build issue
* fix review comments
* reverting un-necessary change
* remove channel args completely from windows impl since it is unused
* remove unused headers and fix usage in endpoint_pair_windows.cc
* cleanup
* cleanup
* fix some initialization issues
* re-generate projects
* removing some files
* fix ifdef for windows
* fixing windows build issue due to improper header file include
* Automated change: Fix sanity tests
* Automated change: Fix sanity tests
* review comments
* add comment
* review comments
* rename GetPointer to GetVoidPointer
* cleanup
* Automated change: Fix sanity tests
* removing EndpointConfig::Get method
* Automated change: Fix sanity tests
* minor fix
Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
2 years ago
AJ Heller
9d4e0e17fe
Revert "Windows IOCP implementation for the WindowsEventEngine ( #30389 )" ( #30466 )
...
This reverts commit 52402afdd4
.
2 years ago
AJ Heller
52402afdd4
Windows IOCP implementation for the WindowsEventEngine ( #30389 )
...
This is a partial fork of the windows iomgr code - specifically the IOCP and Socket pieces - with some improved architecture and encapsulation. And the start of a WindowsEventEngine.
Once this code is used in a gRPC TCP context, I imagine a few issues will shake out. Also, getting sanitizers set up with MSVC will take a bit of work (see a commit referencing abseil and MSVC bugs to hack around).
I forked the IomgrEventEngine's posix poller interfaces in the hope of negotiating compatibility between the platforms, but the interfaces diverged a fair bit, and I'm doubtful we'll be able to use these "pollers" generically in the same TCP code. Reunification might not happen, and that's probably fine, we'll see how similar the TCP code looks once it's fleshed out.
I also extracted the IomgrEventEngine's timer piece into a separate component, usable by both engines.
2 years ago
AJ Heller
e18d335b0e
Add common EventEngine Closure types ( #30438 )
...
* Add common EventEngine Closure types
These have been written a few times, so let's standardize on a spot for
them.
* sanitize
* format
2 years ago
Craig Tiller
05e6bf2e4a
[build] Add test/core/util, test/core/event_engine to auto build deps ( #30364 )
...
* [build] Add test/core/util, test/core/event_engine to auto build deps
* deal with suppressions
* fix suppressions
* Automated change: Fix sanity tests
* fix
* fix
* fix
* fix
* progress
* Automated change: Fix sanity tests
* fix
* fix
* fix
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2 years ago
Vignesh Babu
5171aa70da
Forking the posix poll based poller for iomgr event engine ( #30230 )
...
* start
* Forking the posix epoll1 poller for event engine
* re-generate projects
* fix test
* fix sanity checks
* fix
* update fix
* more build issue fixes
* even more fixes
* add no_windows tag
* re-generate projects
* update comment
* cleanup
* Automated change: Fix sanity tests
* review comments
* fix tsan issue
* re-generate projects
* cleanup
* fix missing build dep
* fix mac build issue
* forking poll based poller for iomgr event engine
* minor fix in test
* update test to run both pollers
* re-generate projects
* simplifying build graph
* re-generate projects
* cleanup
* fix macOS build issues
* review comments
* re-generate projects
* add missing generated file
* review comments
* fix sanity checks
* rename one more build target
* fix build-dep issues
* fix sanity checks
* retry fix sanity checks
* format
* review comments
* fix
* fix
* review comments
* fix sanity checks
* max build and run issues
* fix review comments
* Automated change: Fix sanity tests
Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
2 years ago
Vignesh Babu
fbe051fb51
Forking the posix epoll1 poller for iomgr event engine ( #30135 )
...
* start
* Forking the posix epoll1 poller for event engine
* re-generate projects
* fix test
* fix sanity checks
* fix
* update fix
* more build issue fixes
* even more fixes
* add no_windows tag
* re-generate projects
* update comment
* cleanup
* Automated change: Fix sanity tests
* review comments
* fix tsan issue
* re-generate projects
* cleanup
* fix missing build dep
* fix mac build issue
* minor fix in test
* simplifying build graph
* re-generate projects
* fix macOS build issues
* review comments
* re-generate projects
* add missing generated file
* review comments
* fix sanity checks
* rename one more build target
* fix sanity checks
* retry fix sanity checks
Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
2 years ago
Craig Tiller
830940a103
[gprpp] Move time averaged stats to gprpp ( #30265 )
...
* move to gprpp
* use the shared thing
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2 years ago
AJ Heller
1076a7d447
Use AnyInvocable in EventEngine APIs ( #30220 )
2 years ago
AJ Heller
71c0eb090a
Revert "[WIP] Use AnyInvocable in EventEngine APIs ( #30208 )" ( #30219 )
...
This reverts commit dbbf16f07a
.
2 years ago
AJ Heller
dbbf16f07a
[WIP] Use AnyInvocable in EventEngine APIs ( #30208 )
...
This provides a move-only alternative to std::function.
fix oracle and engine factory
fix generate_projects for any_invocable
fix
format & iwyu
Automated change: Fix sanity tests (#30205 )
Co-authored-by: drfloob <drfloob@users.noreply.github.com>
Co-authored-by: drfloob <drfloob@users.noreply.github.com>
2 years ago
AJ Heller
5a2804d8c7
Remove ExecCtx requirements from the EventEngine conformance test suite ( #30154 )
2 years ago
Craig Tiller
eb5ae61470
Reland (again) bytestream removal ( #29987 )
...
* Revert "Revert "Reland bytestream removal (#29911 )" (#29964 )"
This reverts commit e6c6840db3
.
* initial fc fuzzer
* fixes
* add rq to fc fuzzer
* fleshing things out
* Automated change: Fix sanity tests
* cleanup
* send with payload
* ensure if no reader no flow control tokens are granted
* remove some public methods
* remove bogus benchmarks
* account for pending size
* Automated change: Fix sanity tests
* Automated change: Fix sanity tests
* better logic
* Automated change: Fix sanity tests
* fix
* fixes
* fuzz pending size
* Automated change: Fix sanity tests
* fix
* Automated change: Fix sanity tests
* huh
* increase too short timeout
* review feedback
* review feedback
* fix u32 overflow
* fix
* robustness fixes for channelz_servicer_test
* fix
* Automated change: Fix sanity tests
* fix
* fix
* fix
* Automated change: Fix sanity tests
* dont send window updates if read closed
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2 years ago
Craig Tiller
8249bb97e2
[event_engine] Fix initialization ( #30107 )
...
* [event_engine] Fix initialization
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2 years ago
Craig Tiller
9824e3355d
[event engine] Handle spurious wakeups ( #30092 )
...
* handle spurious wakeups
* disable on mac, win
* Automated change: Fix sanity tests
* Update timer_test.cc
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2 years ago
Vignesh Babu
a10e623494
Set uses polling to true for oracle_event_engine_posix_test ( #30097 )
...
* Set uses polling to true for oracle_event_engine_posix_test
* add a TODO
* Automated change: Fix sanity tests
Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
2 years ago
Vignesh Babu
319b66499f
Fix static port usage in event engine client test ( #30094 )
2 years ago
Vignesh Babu
c03388853c
Revert "Revert "Creating a posix oracle event engine and a suite of event engine client tests"" ( #30060 )
...
* Revert "Revert "Creating a posix oracle event engine and a suite of event engine client tests (#29714 )" (#30042 )"
This reverts commit 1630efd8ab
.
* fix typos
2 years ago
Craig Tiller
5efdac9081
[fuzzing_event_engine] add necessary cast ( #30083 )
2 years ago
Craig Tiller
24caf53835
Roll forward iomgr ee fork ( #30022 )
...
* Revert "Revert "[event-engine] Fork timer code (#29816 )" (#30020 )"
This reverts commit cda2127776
.
* fix-import
* [event_engine] Use durations for scheduling things
* fix
* Automated change: Fix sanity tests
* run-after
* fix
* Automated change: Fix sanity tests
* rename
* Automated change: Fix sanity tests
* format is changing, expunge corpus
* update api_fuzzer
* fix
* Automated change: Fix sanity tests
* fix
* review feedback
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2 years ago
Vignesh Babu
1630efd8ab
Revert "Creating a posix oracle event engine and a suite of event engine client tests ( #29714 )" ( #30042 )
...
This reverts commit 19e6a6d232
.
3 years ago
Vignesh Babu
19e6a6d232
Creating a posix oracle event engine and a suite of event engine client tests ( #29714 )
...
* Creating a posix oracle event engine and a suite of event engine client tests
* regenerate projects
* addressing review feedback
* creating a promise.h in src/core/lib/event_engine
* regenerate projects
* fix errors
* remove no_mac tag for posix oracle event engine test
* Automated change: Fix sanity tests
* fix a static_cast
* adding a no_windows tag
* fixing macos build and test issues
* adding some static_casts
* removing connection manager usage in client_test to improve readability
* fix nits
* fix minor typo
* fix sanity checks
* update fuzzing_event_engine_test to new api
* update event engine time type
Co-authored-by: Vignesh2208 <Vignesh2208@users.noreply.github.com>
3 years ago
Craig Tiller
d9f64437b0
[event_engine] Use durations for scheduling things ( #30023 )
...
* [event_engine] Use durations for scheduling things
* fix
* Automated change: Fix sanity tests
* run-after
* fix
* Automated change: Fix sanity tests
* rename
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
AJ Heller
cda2127776
Revert "[event-engine] Fork timer code ( #29816 )" ( #30020 )
...
This reverts commit 977ebbef09
.
3 years ago
Craig Tiller
977ebbef09
[event-engine] Fork timer code ( #29816 )
...
* move files
* [event-engine] Fork timer code from iomgr
* progress
* thread-pool
* x
* fixes
* tests
* Automated change: Fix sanity tests
* x
* wip
* Automated change: Fix sanity tests
* timer-heap-test
* flesh-things-out
* wip
* Automated change: Fix sanity tests
* fix-test
* fix
* Automated change: Fix sanity tests
* fix
* fix windows
* Automated change: Fix sanity tests
* fix mac
* fix
* review feedback
* fix
* Automated change: Fix sanity tests
* fixes
* Automated change: Fix sanity tests
* review feedback
* Automated change: Fix sanity tests
* fix
* annotate
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
Craig Tiller
840b38ccbc
Reland (again) fuzzing event engine ( #29948 )
...
* Revert "Revert "Reland fuzzing event engine (#29943 )" (#29947 )"
This reverts commit dd07751c03
.
* fix
3 years ago
Craig Tiller
dd07751c03
Revert "Reland fuzzing event engine ( #29943 )" ( #29947 )
...
This reverts commit 72e65b03cf
.
3 years ago
Craig Tiller
72e65b03cf
Reland fuzzing event engine ( #29943 )
...
* Revert "Revert "[event_engine] Fuzzing event engine (#29926 )" (#29942 )"
This reverts commit cb2a92b5bb
.
* fix unused args
3 years ago
Craig Tiller
cb2a92b5bb
Revert "[event_engine] Fuzzing event engine ( #29926 )" ( #29942 )
...
This reverts commit 9b0afb46f9
.
3 years ago
Craig Tiller
9b0afb46f9
[event_engine] Fuzzing event engine ( #29926 )
...
* [event_engine] Fuzzing event engine
* Automated change: Fix sanity tests
* fix
* Update fuzzing_event_engine.cc
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
3 years ago
AJ Heller
3b3f952ef6
Revert "Revert "Temporarily require ExecCtx to be on the thread's stack for EventEngine ( #29755 )" ( #29770 )" ( #29777 )
...
This reverts commit c895272157
.
3 years ago
AJ Heller
c895272157
Revert "Temporarily require ExecCtx to be on the thread's stack for EventEngine ( #29755 )" ( #29770 )
...
This reverts commit e4ce9afbc9
.
3 years ago
AJ Heller
e4ce9afbc9
Temporarily require ExecCtx to be on the thread's stack for EventEngine ( #29755 )
...
* Temporarily require ExecCtx to be on the thread's stack for EventEngine
There's a migration path that allows us to remove this requirement
eventually, but for now it is the simplest way forward. After
`ExecCtx::Run` and `grpc_timer_*` calls have been replaced, this can be
removed.
* Flush ExecCtx on destruction to block on pending callbacks
3 years ago
AJ Heller
250b8d2dae
IomgrEventEngine Redux ( #29693 )
...
* Revert "Revert "IomgrEventEngine (#29616 )" (#29692 )"
This reverts commit 246d13e392
.
* temporarily disable EE usage to coordinate landing
* spelling
3 years ago
AJ Heller
246d13e392
Revert "IomgrEventEngine ( #29616 )" ( #29692 )
...
This reverts commit 7f09b98201
.
3 years ago
AJ Heller
7f09b98201
IomgrEventEngine ( #29616 )
3 years ago