diff options
author | Muxi Yan <mxyan@google.com> | 2017-05-16 11:07:55 -0700 |
---|---|---|
committer | Muxi Yan <mxyan@google.com> | 2017-05-16 11:07:55 -0700 |
commit | b1e5bac392a3c229eed5df16a6b8ea850501ef39 (patch) | |
tree | abbe4c3498578b68c6705c184e67ffc2d97c6133 | |
parent | bc60bb25b2ee2950e6aa8689271e4f4bd13f74b3 (diff) |
Add /doc/workarounds.md
-rw-r--r-- | doc/workarounds.md | 20 | ||||
-rw-r--r-- | include/grpc++/server_builder.h | 2 | ||||
-rw-r--r-- | include/grpc/support/workaround_list.h | 2 |
3 files changed, 22 insertions, 2 deletions
diff --git a/doc/workarounds.md b/doc/workarounds.md new file mode 100644 index 0000000000..4dd1a2c83c --- /dev/null +++ b/doc/workarounds.md @@ -0,0 +1,20 @@ +# gRPC Server Backward Compatibility Issues and Workarounds Manageent + +## Introduction +This document lists the workarounds implemented on gRPC servers for record and reference when users need to enable a certain workaround. + +## Workaround Lists + +| Workaround ID | Date added | Issue | Workaround Description | Status | +|-------------------------------------|--------------|---------------------------------------------------|------------------------------------------------------|--------------------------| +| WORKAROUND\_ID\_CRONET\_COMPRESSION | May 06, 2017 | Before version v1.3.0-dev, gRPC iOS client's | Implemented as a server channel filter in C core. | Implemented in C and C++ | +| | | Cronet transport did not implement compression. | The filter identifies the version of peer client | | +| | | However the clients still claim to support | with incoming `user-agent` header of each call. If | | +| | | compression. As a result, a client fails to parse | the client's gRPC version is lower that or equal to | | +| | | received message when the message is compressed. | v1.3.x, a flag GRPC\_WRITE\_NO\_COMPRESS is marked | | +| | | | for all send\_message ops which prevents compression | | +| | | The problem above was resolved in gRPC v1.3.0-dev.| of the messages to be sent out. | | +| | | For backward compatibility, a server must | | | +| | | forcingly disable compression for gRPC clients of | | | +| | | version lower than or equal to v1.3.0-dev. | | | + diff --git a/include/grpc++/server_builder.h b/include/grpc++/server_builder.h index 2dcd0701a2..3c989c041d 100644 --- a/include/grpc++/server_builder.h +++ b/include/grpc++/server_builder.h @@ -186,7 +186,7 @@ class ServerBuilder { /// Enable a server workaround. Do not use unless you know what the workaround /// does. For explanation and detailed descriptions of workarounds, see - /// docs/workarounds.md. + /// doc/workarounds.md. ServerBuilder& EnableWorkaround(uint32_t id); private: diff --git a/include/grpc/support/workaround_list.h b/include/grpc/support/workaround_list.h index 6a8aa1f955..ec4766510f 100644 --- a/include/grpc/support/workaround_list.h +++ b/include/grpc/support/workaround_list.h @@ -36,7 +36,7 @@ /* The list of IDs of server workarounds currently maintained by gRPC. For * explanation and detailed descriptions of workarounds, see - * /docs/workarounds.md + * /doc/workarounds.md */ typedef enum { GRPC_WORKAROUND_ID_CRONET_COMPRESSION = 0, |