Skip to content
Snippets Groups Projects
Commit a44cbfc1 authored by Craig Tiller's avatar Craig Tiller
Browse files

Fix race condition in transport API

Specifically:

Receiving trailing and initial metadata had to be published in
lock-step.
=> If we wanted trailing metadata, we might not get initial metadata processed
   until messages arrived.
=> Compression code had no idea what codec to use.

To fix it, publish initial metadata as soon as it's ready (this is a
transport API change).

Requires changes to grpc_call to ensure ordering in processing initial
metadata and messages (one may be delayed).

Exposed at least some bugs in C++ where we never read initial metadata.

I expect at least one more similar bug.
parent 4253522c
No related branches found
No related tags found
No related merge requests found
Showing
with 156 additions and 84 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment