* Revert "Revert "Add SRV and TXT record lookup methods to the iomgr API (#30078)" (#30176)"
This reverts commit 2c3acbb2b2.
* one way to fix the ares handle race. Another option: work_serializer
* replace mu with parent's work serializer
* add lock annotations
* Revert "replace mu with parent's work serializer"
This reverts commit 0fce0ae150.
* statusor -> optional
* Automated change: Fix sanity tests
* add missing dep
Co-authored-by: drfloob <drfloob@users.noreply.github.com>
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>
* [arena] Add ManagedNew(), gtest-ify test
Add a ManagedNew() method to Arena that calls the relevant destructor at Arena destruction time.
There are some cases coming up in the promise based call work where this becomes super convenient, and I expect it's likely that there are other places that's true too.
* Automated change: Fix sanity tests
* review feedback
* use construct/destruct more
* Automated change: Fix sanity tests
* Automated change: Fix sanity tests
* fix
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
* Rename ResolveName to LookupHostname (same as EventEngine)
* Add stubs and no-op impls for LookupTXT and LookupSRV
* add native resolver tests that assert unimplemented
* extract custom name_server-setting logic and remove goto
* Separate SRV queries from grpc_dns_lookup_ares
* add necessary fixits before merging
* Automated change: Fix sanity tests
* fix missing ExecCtx on resolver tests
* separate out TXT lookup from hostname lookup (now all 3 are separate)
* rm DNS and update docs
* fix the fixer (forgot to add deps to BUILD)
* remove unused SRV and TXT args from ares hostname lookup method
* rename hostname-only ares dns lookup method
* refactor AresRequest using template method pattern
* Add name_server to Ares LookupHostname internals (needs iomgr API change)
* fix resolver test, callback should not be called on cancellation
* implement Ares-iomgr SRV and TXT lookup methods (verified manually)
Used a custom bind server with some redacted tests from
`resolve_address_test` to ensure both are working as expected.
* cleanup cruft
* unify common ares request setup logic between A, AAAA, TXT, and SRV
* generate_projects
* comment out unused args
* DNSResolver iomgr API uses Duration; hostname has all args now
* rm stale TODOs
* windows fix - bad variable name
* windows fix
* Automated change: Fix sanity tests
* reviewer feedback
* make protected members private
* move common properties to AresRequest base class
* localhost TXT results are empty, not an error
* reviewer feedback
* fix
Co-authored-by: drfloob <drfloob@users.noreply.github.com>
* [WIP] Precondition ChannelArgs with a default EventEngine
This is a step towards using ChannelArgs as the primary means of
accessing EventEngine instances in gRPC-core. If not explicitly provided
by the application, a default EventEngine will populated into
ChannelArgs during preconditioning.
This is not a final state, we may want to enable ref-counting here
instead of using raw pointers. And a refactoring is in order to enable
GetObject instead of the more verbose
GetPointer<EventEngine>(GRPC_ARG_EVENT_ENGINE).
* Refactor ChannelArgs::GetObject to support non-conforming classes
This allows us to not expose `ChannelArgName` in the public interface.
* Add std::shared_ptr to ChannelArgs; Add EventEngine specialization
* subchannel fix; cleanup
* replace GetSharedPtr with overloads of GetObjectRef
* Automated change: Fix sanity tests
* fix the fixer
* fix raw pointer retrieval from stored shared_ptr
* Make GetObjectRef<EventEngine> work (not general to shared_ptr)
* enable shared_ptr ChannelArg support for shared_from_this
* use new EventEngines for tests (not the default global)
* Automated change: Fix sanity tests
Co-authored-by: drfloob <drfloob@users.noreply.github.com>
* BinderTransport: Fix wire reader/writer issue with NDK
NDK sometimes call registered `AIBinder_Class_onTransact`
callback while we call its `AIBinder_transact`.
Sometimes this behavior happens consistently sometimes it
don't happen at all. Likely related to the short circuit
behavior happens when both gRPC server and gRPC client are in the same
process.
This commit also fixes some other existing issue in wire writer.
* Use atomic<int64_t> instead of atomic_int64_t
atomic_int64_t is not defined in older compilers.
* Lower log level to avoid excessive test output
* Add missing break
dropepd this while addressing reivew comments
* Use absl::make_unique
* Fix printf portability with PRId64
* clang-format
* generate projects.
* Revert "Revert "Creating a posix oracle event engine and a suite of event engine client tests (#29714)" (#30042)"
This reverts commit 1630efd8ab.
* fix typos
* 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>
This change includes:
* adding a cert file path for MacOS
* updating related test to run on MacOS too
* s/linux/supported/ since this now includes more platforms
* regenerating files affected by the name change
* [resource_quota] Periodic update tracker
Periodic update type that tries to do updates at some measurable
timescale without polling the current time every tick, instead trying to
approximate how many ticks will be required to fill the desired
duration.
The intent here is that we use this in RQ to donate memory back
periodically whilst keeping timer checks off the fast path.
* fix
* Automated change: Fix sanity tests
* review feedback
* fix
* fix
* review feedback
* Automated change: Fix sanity tests
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
* ring_hash: don't recreate ring when individual subchannel states change
* client_channel: remove synchronous subchannel connectivity state API
* change subchannel list to automatically start watching all subchannels
* use a separate loop to start watches, so list size is logged correctly
* fix RR to re-resolve on IDLE again
* fix ring_hash to delay promoting new subchannel list
* fix pick_first to wait for all subchannels to report state
* clean up SubchannelList API
* fix unused argument error
* fix another unused argument error
* clang-format
* fix RR to not re-resolve on initial IDLE state
* also don't re-resolve in initial TF state; same for ring_hash
* clang-format
* change RR and PF to initially report CONNECTING, and add second loop to priority policy
* simplify priority logic a bit
* fix grpclb to drop ref to stats object even if the subchannel call is never started
* fix memory leak in ring_hash
* fix tsan failure in grpclb code
* iwyu
* add missing BUILD deps
* update outlier_detection policy
* fix test
* fix pick_first to not report TF prematurely due to subchannel sharing
* add status to SubchannelInterface connectivity state notifications
* fix test to not depend on timing
* fix dumb overloaded method name bug
* fix sanity
* fix include path
* ring_hash: don't recreate ring when individual subchannel states change
* client_channel: remove synchronous subchannel connectivity state API
* change subchannel list to automatically start watching all subchannels
* use a separate loop to start watches, so list size is logged correctly
* fix RR to re-resolve on IDLE again
* fix ring_hash to delay promoting new subchannel list
* fix pick_first to wait for all subchannels to report state
* clean up SubchannelList API
* fix unused argument error
* fix another unused argument error
* clang-format
* fix RR to not re-resolve on initial IDLE state
* also don't re-resolve in initial TF state; same for ring_hash
* clang-format
* change RR and PF to initially report CONNECTING, and add second loop to priority policy
* simplify priority logic a bit
* fix grpclb to drop ref to stats object even if the subchannel call is never started
* fix memory leak in ring_hash
* fix tsan failure in grpclb code
* iwyu
* add missing BUILD deps
* update outlier_detection policy
* fix test
* fix pick_first to not report TF prematurely due to subchannel sharing
* fix test to not depend on timing
* EventEngine::RunAt - Subchannel connection retries
* Fix refcounting on retry timer reset
* Automated change: Fix sanity tests
* fix autofixer's goof
* Squashed commit of the following:
commit d4aed9e615
Author: Craig Tiller <ctiller@google.com>
Date: Fri May 20 12:58:47 2022 -0700
Revert "[c++14] Remove Capture type (#29327)" (#29748)
This reverts commit 944c0b2ce9.
commit 965feb5726
Author: apolcyn <apolcyn@google.com>
Date: Fri May 20 12:45:33 2022 -0700
xds: Remove aggregate and logical dns clusters env var guard (#29742)
* Remove aggregate and logical dns clusters env var guard
commit d5c8bbce51
Author: Sergii Tkachenko <sergiitk@google.com>
Date: Fri May 20 10:44:59 2022 -0700
xds-k8s: Do not recommend enabling mesh certs by default (#29743)
This should covered separately per this note:
> For more details, and for the setup for security tests, see
["Setting up Traffic Director service security with proxyless gRPC"](https://cloud.google.com/traffic-director/docs/security-proxyless-setup)
user guide.
commit 1df32ca680
Author: AJ Heller <hork@google.com>
Date: Fri May 20 10:18:53 2022 -0700
Delete the EventEngine-driven iomgr implementation (#29654)
This code is not compiled by default and has fallen out of sync with the
rest of the codebase. There's a good chance it won't be used, given our
current work to use an iomgr-drive EventEngine instead.
This code will continue to live in git history, should we need to bring
pieces of it back.
commit 944c0b2ce9
Author: Craig Tiller <ctiller@google.com>
Date: Fri May 20 09:56:23 2022 -0700
[c++14] Remove Capture type (#29327)
* Remove Capture type
* Automated change: Fix sanity tests
* update
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
commit fd744e081d
Author: Esun Kim <veblush@google.com>
Date: Fri May 20 08:54:33 2022 -0700
Removed manylinux2010 python artifacts (#29734)
* Removed manylinux2010 python artifacts
* Fix
* Fix2
* Added cp37 to presubmit test for distribtest relying on cp37 artifacts
commit 5051566b27
Author: Jan Tattermusch <jtattermusch@google.com>
Date: Fri May 20 11:07:04 2022 +0200
Enable remote cache for selected ObjC bazel tests. (#29731)
* enable remote cache for ObjC bazel tests
* add bazel RBE cache for mac ios bazel builds
* release lock before unreffing
* rm some manual WeakRef-counting
* comments
* verbiage
Co-authored-by: drfloob <drfloob@users.noreply.github.com>
Co-authored-by: Vignesh Babu <vigneshbabu@google.com>
* UTF-8 encoding guard
* No %c in the error message
* Added a test
* Revert "Added a test"
This reverts commit de30631bd8a2b72037bb11149f1d1d6cf45435ec.
* Revert "No %c in the error message"
This reverts commit 279b54b5b528f98e5064623234834f7670c8109c.
* Revert "UTF-8 encoding guard"
This reverts commit e60d8e1bf4285daddfffe84974bd9da7f40e851b.
* Clean up log messages to be a valid utf-8 string
* Store the message as a payload
* Fix for test
* Fix 2
* Update by review
* Revert the previous change
* Enforce test
* [slice] Move percent_encoding to its own target
* Percent encoding
* Regen projects
* Fix ubsan issue
* Fixed the test
Co-authored-by: Craig Tiller <ctiller@google.com>