In grpc v1.46.2 and later versions, #29155 caused the Ruby client to return `GRPC::Core::CallError`, a non-standard error, with a message: `grpc_call_start_batch failed with outstanding read or write present (code=8)`. However, the actual error should have been `GRPC::DeadlineExceeded`. This occurred because when `GRPC::DeadlineExceeded` is raised, the `@metadata_received` flag doesn't get flipped. When `receive_and_check_status` runs to determine
the error, the `RECV_INITIAL_METADATA` is erroneously sent again.
To avoid this, flip the flag in an `ensure` block whenever the `RECV_INITIAL_METADATA` op is set.
Closes#33283Closes#33565
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/33565 from stanhu:sh-ruby-fix-issue-33283 850889558c
PiperOrigin-RevId: 614088694
This reverts commit 675dcccd5e.
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#36076
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36076 from XuanWang-Amos:roll_back_AbortError 1db7c39903
PiperOrigin-RevId: 613739975
Apple platforms have supported clock_gettime for several years now (since 2016).
Simplify implementation and remove required api call to `mach_absolute_time`.
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#35923
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35923 from dmaclach:patch-4 45f670d10e
PiperOrigin-RevId: 612965724
Allow start observability globally with a new API `start_open_telemetry_observability`.
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#35932
PiperOrigin-RevId: 612639020
also:
- remove tail recursion from promise endpoint read completion (actually overflowed stack!)
- remove retry filter from benchmark - we probably don't want this long term, but for now nobody else is using this benchmark and our use case doesn't use grpc retries so.... good enough
Closes#36050
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36050 from ctiller:cgbm 65b1c26767
PiperOrigin-RevId: 612577071
This adds the following new targets:
- `channel`: A virtual interface for a channel.
- `legacy_channel`: A channel implementation that supports the filter stack and call v2.
- `channel_create`: A standalone function to create a channel.
- `server_interface`: A base class with a few accessor methods used in surface/call.cc.
- `server`: The actual server implementation.
- `api_trace`, `call_tracer`, `server_call_tracer_filter`, `call_finalization`: These were split out of `grpc_base` to avoid various dependency problems.
- `compression`: This is a combination of the previously existing `compression_internal` target and the compression code that was part of `grpc_base`.
Closes#35924
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35924 from markdroth:channel_interface 94a7fffddb
PiperOrigin-RevId: 612512438
Redacting unknown metadata types in debug logs.
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#36006
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36006 from tanvi-jagtap:tjagtap_redact_01 94c5738bfe
PiperOrigin-RevId: 611334483
We were skipping reading a request payload, which led to a serialization failure, which led to UNIMPLEMENTED errors.
Closes#36017
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36017 from ctiller:goodness 606545295f
PiperOrigin-RevId: 611254339
This PR adds the Authority Key Identifier to CertificateInfo. This value _can be_ important in finding the right CRLs to use if there are Issuer name overlaps or a more complicated CA setup with multiple signing keys.
We should observe no behavior change in our `CrlProvider` implementations, this is just adding an important field for users who implement it themselves.
Closes#35931
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35931 from gtcooke94:AkidCheck dd048a53b6
PiperOrigin-RevId: 611143198
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#36013
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36013 from yousukseung:work-serializer 8fdf679309
PiperOrigin-RevId: 610938472
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#35970
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35970 from ananda1066:client_metadata b62a9ae146
PiperOrigin-RevId: 610830228
Needed for some shutdown debugging. I was thinking whether to use `fprintf` to stderr directly instead of using `gpr_log`, the reason being that grpc has shutdown and it may be bad to use `gpr_log` after shutdown. Currently atleast, we do not modify the `gpr_log` function on `init`/`shutdown` so it seems fine to continue using it. Additionally, given that this is just for own internal debugging purposes, I don't want to sprinkle `fprintf` around if it's not necessary.
Closes#36002
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/36002 from yashykt:LogOnGrpcShutdown 61b9ad573a
PiperOrigin-RevId: 610515417
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#35992
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35992 from yousukseung:work-serializer-windows 7b21f46dde
PiperOrigin-RevId: 610042481
Fix `readme.rst`.
Tested locally by running `python setup.py doc`, no more errors from observability.
Only error is related to grpc_status:
```
WARNING: autodoc: failed to import module 'rpc_status' from module 'grpc_status'; the following exception was raised:
cannot import name 'status_pb2' from 'google.rpc' (unknown location)
```
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#35988
PiperOrigin-RevId: 609820414
Prepare the listener socket with the configured DSCP value to mark outgoing packets correctly.
This is already done correctly for clients.
During implementation and delivery of the DSCP feature both experiments `event_engine_listener` and `event_engine_client` were default `OFF`. Unfortunately the `event_engine_listener` experiment was not enabled correctly during verification, which resulted in that the working `iomgr` codepath was used instead.
This PR adds the missing action which I now have verified correctly.
Fixes#35954Closes#35983
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35983 from Nordix:fix-dscp 72969db88e
PiperOrigin-RevId: 609770886
5 seconds is really too small when we've got dozens of connections being established on a busy system. We need a deadline, but it can be significantly looser.
Closes#35937
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35937 from ctiller:timeout1 dc26a82985
PiperOrigin-RevId: 609587934
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#35871
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35871 from yijiem:grpc-metrics 86ebe484ae
PiperOrigin-RevId: 609533796
- PHP 7.4 and 8.0 have been EOL https://www.php.net/supported-versions.php
- See go/drop-php-8.0 for more details
Most of the changes came from `generate_projects.sh` after updating the `tools/buildgen/plugins/expand_version.py` file. The change to `tools/internal_ci/helper_scripts/prepare_build_macos_rc` is manual.
Closes#35964
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35964 from stanley-cheung:php-update-to-8_1 0c24c4eac2
PiperOrigin-RevId: 609495798
We've got a few filters in prod that are going to be awful to convert, and are getting pulled into some unit tests in hard to disable ways -- buuut we don't need them for chaotic good in the reality in which we're deploying it -- so I want an escape hatch for the moment.
Closes#35956
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35956 from ctiller:not-now-thanks f5d331b923
PiperOrigin-RevId: 609384999
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#35573
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35573 from yijiem:enable-oss-ee-dns-posix-real 1df91d1d84
PiperOrigin-RevId: 609193851
This PR is copied from #34276, since I did not have permissions to add commits to it. That PR has been verified to work (see the top-level description). This PR just makes the gRPC tests pass (e.g. adding includes, clang formatting).
Closes#34874
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/34874 from matthewstevenson88:pull_34276 d5fb73e5b2
PiperOrigin-RevId: 609107146
…p and add some verification helpers (#35641)"
This reverts commit 310770d61d.
It breaks all portability tests.
```
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from CrlUtils
[ RUN ] CrlUtils.HasCrlSignBitExists
/[var/local/git/grpc/test/core/tsi/ssl_transport_security_utils_test.cc:566](https://cs.corp.google.com/piper///depot/google3/var/local/git/grpc/test/core/tsi/ssl_transport_security_utils_test.cc?l=566): Failure
Value of: HasCrlSignBit(root_ca_)
Actual: false
Expected: true
[ FAILED ] CrlUtils.HasCrlSignBitExists (0 ms)
[----------] 1 test from CrlUtils (0 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (0 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] CrlUtils.HasCrlSignBitExists
```
Closes#35962
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35962 from drfloob:revert-310770d61d3b25d358d877a074bebf6ae85549d0 e6a2f03309
PiperOrigin-RevId: 609075479
This breaks the following pieces out of the `grpc_client_channel` BUILD target:
- backend_metric_parser
- oob_backend_metric
- child_policy_handler
- backup_poller
- service_config_channel_arg_filter
- client_channel_channelz
- client_channel_internal_header
- subchannel_connector
- subchannel_pool_interface
- config_selector
- client_channel_service_config_parser
- retry_service_config_parser
- retry_throttle
The code left in the `grpc_client_channel` target will need more work to pull apart.
Closes#35879
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35879 from markdroth:client_channel_build_split f388a37edc
PiperOrigin-RevId: 608806548
On Windows I see properly formatted key logging files that include CRLF, e.g.
CLIENT_RANDOM 1acfa70620279d4e2b2895fc510897db6b164be7c97b5e8ee2d3180a551d52ec 4214c5de0498316cedea48c767b97dcbc3cf8121c21b1c441026297796a8b96f502d06de280442b8232221f6be1fbf3a
However, on macOS and Linux see first 10 characters missing. Also there is no CR at the end of the line, e.g.
DOM 0d462bc4dd7884a8ef0d6f493de9a3d9622e88cd22e117f41eff6a833317cb99 aeac8859bdffc000d385b23a9dbec5a6397a7e27097399c23e838617d3a22da00bcf3722d543c93015bd117b11c8a413
This fix changes "\r\n" to "\n" which Wireshark appears to accept on both Windows and macOS.
<!--
If you know who should review your pull request, please assign it to that
person, otherwise the pull request would get assigned randomly.
If your pull request is for a specific language, please add the appropriate
lang label.
-->
Closes#32266
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/32266 from appneta:fix_unix_key_logging_file_corruption f0286f4124
PiperOrigin-RevId: 608748371
In the case where the timer delay is <= 0, RunAfter will return an invalid handle since the callback will not be cancellable. The asserting is invalid in this case. Based on how this handle is used, it seems there is no need for a check that the handle is set. It would only matter if `finish_bdp_ping` were called again before `next_bdp_ping_timer_expired` were called, which I don't think is possible.
Closes#35953
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35953 from drfloob:fix/35943 ff0b1db553
PiperOrigin-RevId: 608729800
There is a continuous failure in the master/windows/bazel_rbe/grpc_bazel_rbe_opt tests. These generate a lot of noise at the moment, and may be hiding other issues, so they are being disabled in CI.
Closes#35952
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35952 from drfloob:ohnowindowspbcc 39ded8e8fa
PiperOrigin-RevId: 608688522
This breaks the following pieces out of the `grpc_base` BUILD target:
- channelz
- call_trace
- dynamic_annotations
- call_combiner
- resource_quota_api
- iomgr
More work is still needed to pull apart the remaining parts of `grpc_base`.
Closes#35846
COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35846 from markdroth:client_channel_build_dep_cycle_fix f1a9b6c2b2
PiperOrigin-RevId: 608680098