Always ref writable streams
We suffered a bug whereby doing a follow-up write to another write could resurrect a deleted stream, causing all sorts of crash. Fix: when a stream becomes writable (vs when we start writing) take a ref on the stream, and only relinquish it once we're done writing.
Showing
- grpc.def 1 addition, 0 deletionsgrpc.def
- include/grpc/impl/codegen/sync.h 4 additions, 0 deletionsinclude/grpc/impl/codegen/sync.h
- src/core/iomgr/iomgr.c 16 additions, 0 deletionssrc/core/iomgr/iomgr.c
- src/core/iomgr/iomgr_internal.h 5 additions, 1 deletionsrc/core/iomgr/iomgr_internal.h
- src/core/support/sync.c 6 additions, 1 deletionsrc/core/support/sync.c
- src/core/transport/chttp2/internal.h 11 additions, 7 deletionssrc/core/transport/chttp2/internal.h
- src/core/transport/chttp2/parsing.c 3 additions, 3 deletionssrc/core/transport/chttp2/parsing.c
- src/core/transport/chttp2/stream_lists.c 21 additions, 17 deletionssrc/core/transport/chttp2/stream_lists.c
- src/core/transport/chttp2/writing.c 14 additions, 23 deletionssrc/core/transport/chttp2/writing.c
- src/core/transport/chttp2_transport.c 26 additions, 17 deletionssrc/core/transport/chttp2_transport.c
- src/core/transport/metadata.c 8 additions, 0 deletionssrc/core/transport/metadata.c
- src/core/transport/transport.c 1 addition, 1 deletionsrc/core/transport/transport.c
- src/python/grpcio/grpc/_cython/imports.generated.c 2 additions, 0 deletionssrc/python/grpcio/grpc/_cython/imports.generated.c
- src/python/grpcio/grpc/_cython/imports.generated.h 3 additions, 0 deletionssrc/python/grpcio/grpc/_cython/imports.generated.h
- src/ruby/ext/grpc/rb_grpc_imports.generated.c 2 additions, 0 deletionssrc/ruby/ext/grpc/rb_grpc_imports.generated.c
- src/ruby/ext/grpc/rb_grpc_imports.generated.h 3 additions, 0 deletionssrc/ruby/ext/grpc/rb_grpc_imports.generated.h
- test/cpp/interop/reconnect_interop_client.cc 1 addition, 1 deletiontest/cpp/interop/reconnect_interop_client.cc
Loading
Please register or sign in to comment