The next Ruby version, 3.2, will have builtin ABI checking (see
ruby/ruby#5474). This requires that the symbol `ruby_abi_version` is
present in the shared object, otherwise the object fails to load.
For example, this is a small repro in Ruby 3.2:
```
$ ruby -Isrc/ruby/lib -e "require 'grpc'"
<internal:/home/peter/src/ruby/install/lib/ruby/3.2.0+0/rubygems/core_ext/kernel_require.rb>:85:in `require': /home/peter/src/grpc/src/ruby/lib/grpc/grpc_c.so: undefined symbol: ruby_abi_version - ruby_abi_version (LoadError)
from <internal:/home/peter/src/ruby/install/lib/ruby/3.2.0+0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from /home/peter/src/grpc/src/ruby/lib/grpc/grpc.rb:22:in `<top (required)>'
from /home/peter/src/grpc/src/ruby/lib/grpc.rb:19:in `require_relative'
from /home/peter/src/grpc/src/ruby/lib/grpc.rb:19:in `<top (required)>'
from <internal:/home/peter/src/ruby/install/lib/ruby/3.2.0+0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from <internal:/home/peter/src/ruby/install/lib/ruby/3.2.0+0/rubygems/core_ext/kernel_require.rb>:85:in `require'
from -e:1:in `<main>'
```
* server: add method to expose authority seen by server
* Automated change: Fix sanity tests
Co-authored-by: markdroth <markdroth@users.noreply.github.com>
This commit adds experimental CI for PSM tests.
Test included initially are Java and cxx tests. With expected load
from 100 to 30000, same as the manual test. Running proxied and proxyless
tests on benchmark-prod2 cluster, 8-core-machines (both client and server).
Data are uploaded to experimental tables.
Open for initial feedback on what we want to run on CI.
It seems either the cost of these configurations has drifted higher, or
that we're running them in more oversubscribed environments.
Unilaterally raise the timeout multiplier for these sanitizers.
* [build] Better dependency fixer
Separate metrics for dependency selection into three: avoidness (to
strongly steer things away based on tags), a selectable metric, and
score (as an unbiasing heuristic)
Add a way to select targets with the command line to help iterating
Three selectable metrics are implemented:
1. edit distance, so that we tend to select things that don't change the
BUILD file
2. list size, as a way of minimizing dependency lists
3. best overall heuristic score
(1) is useful to avoid changing things that folks have carefully
engineered
(2, 3) help in optimizing the graph
* Automated change: Fix sanity tests
* ???
* Update fix_build_deps.py
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
* 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