grpc/include/grpcpp
Yijie Ma ac7faf75ba
Fix a race on vptr for UnimplementedAsyncRequest (#32547)
It is reported in https://github.com/grpc/grpc/issues/32356 that there
is a race on vptr for `UnimplementedAsyncRequest` which would cause
crashes for multi-threaded server if clients send unimplemented RPC
request to the server.

The cause is that the server requests a call for
`UnimplementedAsyncRequest` in its base class `GenericAsyncRequest` when
the `vptr` still points to the base class's `vtable`. If the call went
in and another server thread picks up the tag before the `vptr` points
back to the derived class's `vtable`, it would call the wrong virtual
function and also this is a data race. This fix makes the request of the
call inside the derived class's constructor.

<!--

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.

-->
2023-03-10 13:00:56 -08:00
..
ext GCP Observability: Docs on Init (#32573) 2023-03-09 12:27:21 -08:00
generic Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
impl Add MakeChannelArgumentOption() for void* (#32096) 2023-01-13 17:15:30 -08:00
security Added verified_root_cert_subject pass up through cpp api (#32335) 2023-03-08 13:41:26 -05:00
support Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
test Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
alarm.h Fixed memory leak in Alarm's move assignment 2023-03-07 15:43:12 -08:00
channel.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
client_context.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
completion_queue.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
create_channel.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
create_channel_binder.h [BinderTransport] Make `CreateBinderChannel` parameter names consistent (#31852) 2022-12-13 00:18:45 -08:00
create_channel_posix.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
grpcpp.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
health_check_service_interface.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
opencensus.h GCP Observability: Fix constant labels support for stats when tracing is disabled (#32451) 2023-02-22 14:49:55 -08:00
resource_quota.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
server.h Revert "Revert "Revert "Revert "server: introduce ServerMetricRecorde… (#32301) 2023-02-06 12:00:39 -08:00
server_builder.h Revert "Revert "Revert "Revert "server: introduce ServerMetricRecorde… (#32301) 2023-02-06 12:00:39 -08:00
server_context.h Revert "Revert "Revert "Revert "server: introduce ServerMetricRecorde… (#32301) 2023-02-06 12:00:39 -08:00
server_interface.h Fix a race on vptr for UnimplementedAsyncRequest (#32547) 2023-03-10 13:00:56 -08:00
server_posix.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00
version_info.h Bump dev version to 1.54.0-dev (#32426) 2023-02-21 12:03:19 -08:00
xds_server_builder.h Convert c-style comments to C++-style comments (#31923) 2022-12-22 23:01:53 -08:00