-
- Downloads
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.
Showing
- include/grpc++/impl/codegen/sync_stream.h 18 additions, 2 deletionsinclude/grpc++/impl/codegen/sync_stream.h
- src/core/census/grpc_filter.c 2 additions, 2 deletionssrc/core/census/grpc_filter.c
- src/core/channel/http_client_filter.c 2 additions, 2 deletionssrc/core/channel/http_client_filter.c
- src/core/channel/http_server_filter.c 2 additions, 2 deletionssrc/core/channel/http_server_filter.c
- src/core/channel/subchannel_call_holder.c 2 additions, 4 deletionssrc/core/channel/subchannel_call_holder.c
- src/core/security/server_auth_filter.c 2 additions, 2 deletionssrc/core/security/server_auth_filter.c
- src/core/surface/call.c 102 additions, 52 deletionssrc/core/surface/call.c
- src/core/surface/lame_client.c 1 addition, 2 deletionssrc/core/surface/lame_client.c
- src/core/surface/server.c 2 additions, 2 deletionssrc/core/surface/server.c
- src/core/transport/chttp2/internal.h 1 addition, 1 deletionsrc/core/transport/chttp2/internal.h
- src/core/transport/chttp2_transport.c 8 additions, 7 deletionssrc/core/transport/chttp2_transport.c
- src/core/transport/transport.c 1 addition, 0 deletionssrc/core/transport/transport.c
- src/core/transport/transport.h 4 additions, 1 deletionsrc/core/transport/transport.h
- test/core/fling/client.c 8 additions, 4 deletionstest/core/fling/client.c
- test/cpp/end2end/hybrid_end2end_test.cc 1 addition, 1 deletiontest/cpp/end2end/hybrid_end2end_test.cc
Loading
Please register or sign in to comment